java/GUI 9

키 이벤트

키 이벤트(key event)는 사용자가 키보드를 이용하여 입력을 하는 경우에 발생한다. 키를 누를 때도 발생하지만 키에서 손을 떼는 경우에도 발생한다. 어떤 클래스가 키보드 이벤트를 처리하려면 keyListener 인터페이스를 구현하여야 한다. KeyListener 인터페이스는 다음과 같은 가상 메소드를 가지고 있다. public class MyListener implements KeyListener { public void keyPressed(KeyEvenet e) { } // 사용자가 키를 눌렀을 경우에 호출 public void keyReleased(KeyEvent e) { } // 사용자가 키에서 손을 떼었을 경우에 호출 public void keyTyped(KeyEvent e) { } // 사..

java/GUI 2019.05.22

자바 기초 컴포넌트들

레이블(JLabel) : 텍스트를 표시할 수 있는 공간 텍스트필드(JTextField) : 사용자가 한 줄의 텍스트를 입력할 수 있는 공간 버튼(JButton) : 클릭되면 어떤 동작을 실행하는 버튼 레이블 컴포넌트 중에서 아마 가장 간단한 것이다. 레이블은 편집이 불가능한 텍스트를 표시하기 위한 컴포넌트이다. 레이블은 다양한 용도로 사용되는데 컴포넌트들의 캡션을 표시하거나 도움이 되는 정보 또는 계산의 결과를 표시하는데 사용될 수 있다. 레이블은 텍스트와 이미지를 동시에 표시할 수 있다. 또한 레이블에 나타나는 텍스트의 속성은 변경할 수 있다. 즉 폰트의 종류, 크기, 색상 등은 변경가능하다. 텍스트 필드 텍스트 필드(text field)는 사용자가 한 줄의 텍스트를 입력할 수 있는 기본적인 텍스트 콘..

java/GUI 2019.05.11

패널 사용하기

패널(panel)은 컴포넌트들을 포함하고 있도록 설계된 컨테이너 중의 하나이다. 레이블이나 버튼과 같은 컴포넌트들을 화면에 표시하는 일반적인 방법은 패널에 이들 컴포넌트를 추가하고 그 패널을 프레임에 추가하는 것이다. 물론 패널을 쓰지않고 프레임에 컴포넌트들을 직접 추가할 수도 있지만 별도의 패널을 쓰는 것이 유지보수 및 배치관리에 좋은 경우게 많다. 예를들어서 다음과 같이 화면을 2개로 나누어서 표시하고자 할 때 패널을 사용할 수 있다. 패널도 컨테이너의 일종이므로 setLayout(LayoutManager layout)을 호출하여 배치관리자를 설정할 수 있다. JPanel panel = new JPanel(); panel.setLayout(new GirdLayout(3, 3)); 패널에서 가장 중요한..

java/GUI 2019.05.11

배치 관리자

버튼과 같은 자식 컴포넌트들은 컨테이너 내부에 배치된다. 프로그래머가 절대 좌표값으로 자식 컴포넌트의 위치를 지정할 수도 있다. 그러나 절대 위치를 사용하여 컴포넌트들을 배치할 경우, 플랫폼에 따라서 프로그램의 모습이 상당히 달라질 수 있다. 이러한 문제점을 해결하기 위하여 자바에서는 배치 관리자(layout manager)을 사용한다. 배치 관리자는 컨테이너 안에 존재하는 컴포넌트들의 크기와 위치를 자동적으로 관리하는 객체이다. java.awt 패키지에는 여러 가지의 배치를 제공하는 배치 관리자가 제공된다. BorderLayout 컴포넌트들이 5개의 영역인 North, South, East, West, Center 중 하나로 추가된다. 프레임, 애플릿, 대화 상자와 같은 최상위 컨테이너의 디폴트 배치 ..

java/GUI 2019.05.11

자바 JFrame 클래스

1. 최상위 컨테이너인 JFrame에 대하여 살펴보자. 컨테이너는 컴포넌트들을 트리(tree) 형태로 저장한다. 최상위 컨테이너는 이 트리의 루트 노드가 된다. 각 컴포넌트들은 딱 한번만 컨테이너에 포함될 수 있다. 이미 다른 컨테이너에 들어있는 컴포넌트를 또 다른 컨테이너에 넣으면 안된다. 최상위 컨테이너는 내부에 콘텐트 페인(content pane)을 가지고 있다. 여기에 화면에 보이는 컴포넌트를 저장한다. 최상위 컨테이너는 메뉴바를 추가할 수 있다. cf. content Pane이란 : 화면에 출력될 모든 컴포넌트들이 부착되는 공간 2. 프레임 객체의 속성을 변경하는 방법 객체의 속성을 변경하려면 set으로 시작되는 설정자 메소드를 사용하여야 한다. 우리가 상속에서 살펴보았듯이 조상 클래스가 제공하..

java/GUI 2019.05.11

자바 GUI 작성 절차

애플리케이션의 GUI를 작성하려면 제일 먼저 최상위 컨테이너를 하나 생성하여야 한다. 스윙에는 JFrame, JDialog, JApplet의 3가지의 최상위 컨테이너가 존재한다. JFrame은 윈도우와 메뉴를 가지는 일반적인 데스크탑 애플리케이션에 적합하다. JDialog는 메뉴가 없는 대화 상자 형식의 간단한 애플리케이션에 사용된다. JApplet은 애플릿을 작성하는데 사용된다. 최상위 컨테이너가 생성되었다면 다음 단계는 애플리케이션에 필요한 컴포넌트를 생성하여 컨텡너에 추가하는 것이다. 예를들어 버튼이 필요하다면 버튼을 생성하여 컨테이너에 추가하면 된다. (1) 컨테이너를 작성한다 (2) 컴포넌트를 추가한다. 컨테이너 생성하기 상속없이 JFrame 클래스를 직접 사용할 수도 있지만 보다 일반적인 방법..

java/GUI 2019.05.09

자바 컴포넌트와 컨테이너

컴포넌트 단순한 컴포넌트로서 JButton, JLabel, JCheckbox, JChoice, JMenu, JTextField, JScrollbar, JTextArea, JCanvas 등이 있다. 컨테이너 다른 컴포넌트를 안에 포함할 수 있는 컴포넌트로서 JFrame, JDialog, JApplet, JPanel, JScrollPane 등이 있다. 컨테이너의 종류 컨테이너는 다시 최상위 컨테이너와 일반적인 컨테이너로 나누어진다. 최상위 컨테이너 최상위 컨테이너란 절대 다른 컨테이너 안에 포함될 수 없는 컨테이너를 의미한다. JFrame, JDialog, JApplet등이 여기에 해당된다. 일반 컨테이너 일반적인 컨테이너란 다른 컨테이너 안에 포함될 수 있는 컨테이너로 JPanel, JScrollPane ..

java/GUI 2019.05.09

자바 그래픽 사용자 인터페이스(GUI)

그래픽 사용자 인터페이스(Graphical User Interface, 간단히 GUI)를 사용한다. GUI는 컴포넌트들로 이루어진다. 컴포넌트(component)란 버튼이나 체크박스와 같은 기본적인 빌딩 블록을 의미한다. AWT와 스윙 자바에서 사용할 수 있는 GUI에는 AWT(Abstract Windows Toolkit)와 스윙(Swing)이 있다. AWT는 초기 자바 버전에서 제공하였던 GUI이다. AWT는 운영체제가 제공하는 자원을 이용하여 컴포넌트를 생성한다. 스윙은 AWT와는 달리, 컴포넌트가 자바로 작성되어 있기 때문에 어떤 플랫폼에서도 일관된 화면을 보여줄 수 있다. Java AWT Java Swing AWT는 플랫폼에 의존적이다. 스윙은 플랫폼에 독립적이다. AWT 컴포넌트는 용량이 크다...

java/GUI 2019.05.09