컴퓨터를 사용하는 사용자를 위해 만들어진 특정한 기능을 가진 그래픽 요소
사용자가 프로그램을 쉽게 다룰 수 있도록 그래픽을 제공하도록 프로그래밍 하는 것
자바에서 GUI를 프로그래밍 하기 위해 처음으로 제공한 라이브러리
AWT를 대체하기 위해 자바로 작성된 GUI 객체
실제 GUI 프로그래밍을 하기 위해서 사용하는 메서드
메서드 | 기능 |
---|---|
setLocation(int x, int y) | 프레임의 위치를 지정 |
setSize(int width, int height) | 프레임의 크기를 지정 |
setIconImage(Image IconImage) | 프레임의 타이틀 바에 보여질 아이콘 설정 |
setTitle(String title) | 타이틀바의 제목을 설정 |
setVisible(boolean b) | 화면에 표시 여부를 설정 |
import java.awt.FlowLayout;
import javax.swing.*;
public class AddFrame extends JFrame{
AddFrame(){
setTitle("JFrame");
setSize(300,300);
//컴포넌트 만들기
JButton button=new JButton("button");
JCheckBox box = new JCheckBox("checkbox");
JSlider slide = new JSlider();
JTextField tf=new JTextField("text 입력",20);
this.setLayout(new FlowLayout());
this.add(button);
this.add(box);
this.add(slide);
this.add(tf);
setVisible(true);
//내 프로그램 닫는 기능을 닫기 버튼으로 설정
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new AddFrame();
}
}
컨테이너 내부에 컴포넌트 추가 시 각각의 위치와 크기에 관해 결정
배치관리자 | 특징 |
---|---|
FlowLayout | 왼 → 오 순서대로 배치 |
BorderLayout | 컨테이너 공간을 동서남북 중앙으로 나누고 지정한 영역에 배치 |
GridLayout | 컨테이너 공간을 동일 크기의 2차원 격자로 나누고 들어오는 순서대로 왼 → 오 배치 |
CardLayout | 카드를 쌓아놓은 듯이 컴포넌트를 쪼개어 배치 |
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
public class AddFrame extends JFrame{
public static void main(String[] args) {
// new FlowWindow();
// new BorderWindow();
new GridWindow();
}
}
class FlowWindow extends JFrame{
FlowWindow(){
setTitle("flow window");
setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton btn1=new JButton("btn1");
JButton btn2=new JButton("btn2");
JButton btn3=new JButton("btn3");
this.add(btn1);
this.add(btn2);
this.add(btn3);
this.setLayout(new FlowLayout());
setVisible(true);
}
}
class BorderWindow extends JFrame{
BorderWindow(){
setTitle("border window");
setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton btn1=new JButton("btn1");
JButton btn2=new JButton("btn2");
JButton btn3=new JButton("btn3");
JButton btn4=new JButton("btn4");
JButton btn5=new JButton("btn5");
this.setLayout(new BorderLayout());
this.add(btn1,BorderLayout.EAST);
this.add(btn2, BorderLayout.WEST);
this.add(btn3, BorderLayout.SOUTH);
this.add(btn4, BorderLayout.NORTH);
this.add(btn5, BorderLayout.CENTER);
setVisible(true);
}
}
class GridWindow extends JFrame{
GridWindow(){
setTitle("grid window");
setSize(300, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton btn1=new JButton("btn1");
JButton btn2=new JButton("btn2");
JButton btn3=new JButton("btn3");
this.add(btn1);
this.add(btn2);
this.add(btn3);
this.setLayout(new GridLayout(2, 2));
setVisible(true);
}
}