▷ BorderLayout
→ 대상 컨테이너의 동, 서, 남, 북, 중앙 5개의 영역으로 분할하여 컴포넌트를 배치
→ JFrame 객체(프레임)의 기본 레이아웃
→ 별도의 설정이 없을 경우 기본적으로 BorderLayout이 적용되어 있음
→ 배치할 영역을 지정하는 경우 add() 메서드의 두 번째 파라미터로 BorderLayout.XXX 상수로 위치 지정 가능
→ 만약, 영역 지정을 생략할 경우 기본 영역이 CENTER 영역으로 지정됨
→ 한 영역 당 1개의 컨테이너 또는 컴포넌트 배치 가능
→ 만약, 한 영역에 두 개 이상의 컴포넌트 등을 배치할 경우 마지막에 배치된 대상만 표시됨
→ BorderLayout이 적용된 대상의 크기를 변경하더라도 내부에 배치된 컴포넌트의 크기만 변경되고,
배치된 형태(위치)는 변경되지 않음
ex_layout.Clone_Ex1.java
package ex_layout;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Clone_Ex1 {
public Clone_Ex1() {
showFrame();
}
public void showFrame() {
JFrame f = new JFrame("Clone_Ex1");
f.setBounds(600,300,600,400);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton btnCenter = new JButton("CENTER");
f.add(btnCenter, BorderLayout.CENTER);
JButton btnNorth = new JButton("NORTH");
f.add(btnNorth, BorderLayout.NORTH);
JButton btnEast = new JButton("EAST");
f.add(btnEast, BorderLayout.EAST);
JButton btnWest = new JButton("WEST");
f.add(btnWest, BorderLayout.WEST);
JButton btnSouth = new JButton("SOUTH");
f.add(btnSouth, BorderLayout.SOUTH);
ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JButton btn = (JButton) e.getSource();
if(btnCenter == e.getSource()) {
System.out.println("CENTER 버튼 클릭됨!");
} else if(btnEast == e.getSource()) {
System.out.println("EAST 버튼 클릭됨!");
} else if(btnNorth == e.getSource()) {
System.out.println("NORTH 버튼 클릭됨!");
} else if(btnWest == e.getSource()) {
System.out.println("WEST 버튼 클릭됨!");
} else {
System.out.println("SOUTH 버튼 클릭됨!");
}
}
};
btnCenter.addActionListener(listener);
btnEast.addActionListener(listener);
btnNorth.addActionListener(listener);
btnWest.addActionListener(listener);
btnSouth.addActionListener(listener);
f.setVisible(true);
}
public static void main(String[] args) {
new Clone_Ex1();
}
}
▷ 수업시간에 한 내용을 Clone클래스로 만들어서 똑같이 따라해봄
▷ ActionListener는 버튼의 객체를 가져올 수 있고 그 버튼의 텍스트 정보만 필요하다면
getActionCommand() 또는 getText() 활용하면 된다.
'JAVA' 카테고리의 다른 글
swing (Layout 변경2) (0) | 2022.02.26 |
---|---|
swing (Layout 변경) (0) | 2022.02.26 |
Swing(event_handling) (0) | 2022.02.23 |
Swing (0) | 2022.02.23 |
인터페이스 활용 | 22/01/05 (0) | 2022.01.11 |