안녕하세요! 이번에는 자바에서 GUI 프로그래밍을 위해 사용되는 AWT와 Swing에 대해 상세히 알아보겠습니다. AWT는 자바의 기본적인 GUI 컴포넌트와 그래픽 처리를 담당하며, Swing은 AWT를 기반으로 한 더욱 강력한 GUI 라이브러리입니다. 이제 AWT와 Swing의 주요 개념과 기능에 대해 자세히 알아보겠습니다.
14.1 AWT와 Swing
AWT(Abstract Window Toolkit)는 자바의 기본적인 GUI 컴포넌트와 그래픽 처리를 담당하는 패키지입니다. AWT는 운영 체제의 네이티브 컴포넌트를 사용하여 GUI를 구성하며, 자바 어플리케이션이 다양한 플랫폼에서 동작할 수 있도록 지원합니다.
Swing은 AWT를 기반으로 한 더욱 강력한 GUI 라이브러리로, AWT의 단점을 보완하고 확장성을 제공합니다. Swing은 자바로 작성된 순수 자바 컴포넌트로 구성되어 있으며, 모양과 동작을 완전히 제어할 수 있습니다.
14.2 컴포넌트와 이벤트
AWT와 Swing에서 GUI를 구성하는 요소를 컴포넌트(Component)라고 합니다. 컴포넌트는 버튼, 라벨, 텍스트 필드, 체크 박스 등 다양한 형태로 제공됩니다. 이러한 컴포넌트들은 사용자의 입력에 응답하기 위해 이벤트(Event)를 처리합니다. 사용자의 동작에 따라 발생하는 이벤트를 처리하기 위해 이벤트 리스너(Listener)를 등록하고, 이벤트 처리 메서드를 구현합니다.
// 예제: 버튼 클릭 이벤트 처리
import java.awt.*;
import java.awt.event.*;
public class ButtonExample {
public static void main(String[] args) {
Frame frame = new Frame("Button Example");
Button button = new Button("Click me");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Button clicked!");
}
});
frame.add(button);
frame.setSize(300, 200);
frame.setLayout(new FlowLayout());
frame.setVisible(true);
}
}
14.3 레이아웃 관리자
AWT와 Swing에서 컴포넌트들을 배치하기 위해 레이아웃 관리자(Layout Manager)를 사용합니다. 레이아웃 관리자는 컴포넌트들의 위치와 크기를 자동으로 결정하여 유연한 GUI를 제공합니다. 다양한 레이아웃 관리자 중에서는 BorderLayout, FlowLayout, GridLayout 등이 있습니다.
// 예제: 레이아웃 관리자를 사용한 컴포넌트 배치
import java.awt.*;
public class LayoutExample {
public static void main(String[] args) {
Frame frame = new Frame("Layout Example");
Button button1 = new Button("Button 1");
Button button2 = new Button("Button 2");
Button button3 = new Button("Button 3");
frame.setLayout(new BorderLayout());
frame.add(button1, BorderLayout.NORTH);
frame.add(button2, BorderLayout.CENTER);
frame.add(button3, BorderLayout.SOUTH);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
14.4 그래픽 처리
AWT와 Swing에서 그래픽 처리를 위해 Graphics 클래스를 사용합니다. Graphics 클래스는 그래픽 관련 메서드를 제공하여 도형, 이미지, 텍스트 등을 그릴 수 있습니다.
// 예제: 그래픽 처리를 통한 도형 그리기
import java.awt.*;
public class GraphicsExample {
public static void main(String[] args) {
Frame frame = new Frame("Graphics Example");
frame.add(new Canvas() {
public void paint(Graphics g) {
g.setColor(Color.RED);
g.fillRect(50, 50, 100, 100);
g.setColor(Color.BLUE);
g.fillOval(150, 50, 100, 100);
g.setColor(Color.GREEN);
g.drawLine(250, 50, 350, 150);
}
});
frame.setSize(400, 200);
frame.setVisible(true);
}
}
이상으로 자바 AWT와 Swing에 대한 상세한 내용과 예제 코드를 알아보았습니다. AWT와 Swing을 활용하여 다양한 GUI 애플리케이션을 개발해보세요. 감사합니다!
'JAVA' 카테고리의 다른 글
JAVA8 | 람다 표현식 (0) | 2023.06.15 |
---|---|
JAVA | 15. 네트워킹 (0) | 2023.06.12 |
JAVA | 13. 람다식과 스트림 (0) | 2023.06.11 |
JAVA | 12. 제네릭 (0) | 2023.06.11 |
JAVA | 11. 컬렉션 프레임워크 (0) | 2023.06.11 |
댓글