티스토리 뷰
목차
안녕하세요. 오늘은 객체지향 프로그래밍을 학습하기에 적합한 JAVA Swing 라이브러리를 활용하여 간단한 윈도우 창을 띄우는 방법에 대해 알려드리겠습니다. 먼저 이 글은 자바 개발 환경인 Eclipse나 Visual Studio Code 등을 설치한 후 환경변수 설정까지 완료하셨다는 가정 하에 작성하는 글임을 참고해 주시기 바랍니다. 본 글은 Eclipse 개발 환경에서 진행됨을 알려드립니다.
자바 프로젝트 만들기
먼저 자바 프로젝트를 생성해야 합니다. 이클립스 개발 툴을 켜셔서 단축키 Ctrl + N을 누르면 위와 같은 창이 나옵니다. 그 후 Java project를 검색하신 후 Next 버튼을 클릭합니다.
그러면 이런 화면이 뜨게 되는데요. 다른 것들은 건드리실 필요 없고, Project name에 본인이 만들고자 하는 프로젝트명을 입력한 후 Next를 클릭하면 됩니다. 이때 프로젝트명은 반드시 대문자로 시작해야 합니다.
패키지 폴더 만들기
자 이렇게 Window라는 이름의 프로젝트를 생성했습니다. 이제 src 폴더를 더블클릭 한 후 이젠 패키지를 생성해 줍니다. 이번에도 Ctrl + N 단축키를 누르게 되면 프로젝트 생성때와 동일한 검색창이 뜨는데요. package를 검색하고 똑같이 패키지 폴더명을 지어줍니다. 이때 패키지명은 반드시 소문자로 시작해야 합니다.
클래스 만들기
일단 프로젝트는 무엇이고, 패키지는 도대체 무엇인가를 궁금해하실 수 있습니다. 처음부터 왜 이렇게 복잡하게 폴더를 구성해야 하는지 궁금하시겠지만, 일단은 이 순서대로 따라오시는 것을 연습하시다 보면 나중에 그 이유를 알게 됩니다. 그다음으로는 이제 패키지 폴더 내부에 우리가 코드를 작성하게 될 클래스를 생성해야 합니다. 이때 클래스명은 또다시 대문자로 시작하도록 작명해야 한다는 점 잊지 말아 주세요. 생성은 프로젝트와 패키지를 생성할 때와 마찬가지로 Ctrl + N 단축키를 눌러서 class를 검색한 후 원하는 클래스명을 입력해 생성해 줍니다.
본격적인 코드 작성
자 코드 작성은 이제부터 시작입니다. Window 프로젝트 - wind 패키지 - Window 클래스 순으로 생성된 모습을 볼 수 있습니다. 이제부터 스윙 라이브러리를 활용해 윈도우 창을 띄워볼 텐데요. 여기서 라이브러리란 무엇인지 간단하게 설명해 드리자면, 선배 개발자분들이 아주 감사하게도 후배 개발자들이 사용하기 편하게끔 이미 어마어마한 코드들을 잘 정리하고 작성해 놓아서 우리는 그 단위 코드들을 가져다 쓰기만 하면 되는 여러 가지 도구들이라고 생각하시면 됩니다. 이 Swing 라이브러리에는 우리가 복잡하게 코드를 작성할 필요 없이도 아주 간단하게 윈도우 창을 띄울 수 있도록 설계가 돼 있습니다. 그렇다면 코드 작성을 해보도록 하겠습니다.
윈도우 창을 띄우기 위한 자바 코드
자 어떠신가요? 이것이 바로 윈도우 창을 띄우기 위한 아주 간단한 코드입니다. 물론 처음 이 코드를 접하게 되면 도대체 이게 무슨 말인지 하나도 이해하기 어려우시겠지만, 기본적으로 JFrame과 같은 명칭은 우리가 알고 있어야 합니다.
메인 메서드
위 코드를 보시면 public static void main(String[] args){}라는 메서드가 있는데요. 이 코드는 { 중괄호 } 안에 있는 코드들을 실행시키는 아주 중요한 코드이기 때문에 반드시 외워야 합니다. 이 코드를 메인 메서드라고 부릅니다.
주석
그리고 //와 같이 슬래쉬 기호를 두 번 쓴 후 글을 작성하게 되면 그 라인은 코드가 아닌 각 코드가 무엇인지 설명을 적어놓는 주석입니다. 따라서 자바 프로그램이 실행될 때 해당 라인은 실행되지 않습니다.
윈도우 객체 생성
10번 라인을 보시면 JFrame frame = new JFrame("윈도우 창 띄우기"); 코드를 볼 수 있습니다. 코드 구조를 잘 살펴보시면 JFrame이라는 타입의 클래스, 그리고 frame이라고 임의로 이름을 지어준 변수, 그리고 =(등호)는 코드 작성 시에는 '같다'라는 의미가 아닌 오른쪽에 있는 코드를 왼쪽의 JFrame 타입의 frame 변수에 담아준다라고 생각하셔야 합니다. 코드 작성 시에 '같다'를 표현하는 방법은 ==이므로 이 점 헷갈리지 않으시기 바랍니다. new JFrame();은 JFrame이라는 객체를 새로 생성하겠다는 표현입니다. 자 다시 말해서 JFrame("윈도우 창 띄우기")라는 객체를 생성해서 왼쪽의 JFrame 타입의 frame 변수에 담아주겠다는 의미입니다. frame 변수에 "윈도우 창 띄우기"라는 이름의 JFrame 객체가 담겨있기 때문에 이제는 frame 변수를 가지고 해당 윈도우 창을 설정해 주면 됩니다.
윈도우 설정
JFrame 클래스에는 정말 다양한 기능들이 내장돼 있습니다. 여기서 우리는 기능이라는 말과 메서드(method)를 동일하게 생각하면 됩니다. frame 변수에 .을 붙이면 자동완성 기능으로 다양한 메서드들을 호출할 수 있는데요. 위의 코드를 자세히 보시면 frame.setDefalutCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(500,500);, frame.setLocationRelativeTo(null); frame.setVisible(true);가 있습니다. 모두 JFrame 클래스에 이미 만들어져 있는 메서드들입니다. 우리는 이미 만들어져 있는 메서드들을 호출했을 뿐입니다. 그렇다면 메서드는 어떤 형태로 만들어질까요? JFrame 내에서 대략적으로 아래와 같은 사진처럼 만들어져 있습니다.
아주 간략하게 예시를 든 것입니다. JFrame 클래스에는 이렇게 방금 호출했던 메서드들이 작성돼 있습니다. 그렇기 때문에 우리는 다른 클래스에서 JFrame객체를 생성해서 갖고 오기만 하면 해당 클래스에 이미 작성된 메서드(기능)들을 호출할 수 있습니다.
윈도우창 띄우기
코드를 위와 같이 작성 완료했다면 이제는 실행시키는 일만 남았습니다. 이클립스에서 코드 실행을 위해서는 우측 화살표 모양의 버튼을 클릭하거나 단축키 Ctrl + F11을 누르면 됩니다. 오늘은 아주 간단하게 윈도우창을 띄우는 방법에 대해서만 알려드렸습니다. 하지만 이제 시작입니다. 우리는 윈도우 창에 버튼(JButton)과, 글을 입력할 수 있는 텍스트필드(JTextField), 텍스트 영역(JTextArea), 그리고 글씨를 윈도우 안에 새길 수 있는 라벨(JLabel), 그 외에도 다양한 GUI를 적절한 위치에 붙여서 창의적인 프로그램을 만들 수 있습니다. 앞으로 차근차근 그 기능들을 부착해 보면서 재미있는 프로그램을 만들어 보도록 하겠습니다.