Java-GUI(layout, 배치관리자)
Layout
- 레이아웃은 항상 컨테이너에다가 적용 (컴포넌트 x)
- BoxLayout
-
CardLayout
- 어댑터
- 리스너클래스의 구현클래스들을 전부 구현하기에 불필요할 때 이렇게 선택적으로 메소드구현할 수 있는데 어댑터클래스도 있음.
-
패널3개 위에 부착하기
- JFormattedTextField 사용방법
JFormattedTextField format; MaskFormatter mf = new MaskFormatter("####.##.##"); mf.setPlaceholderCharacter('_'); format = new JFormattedTextField(mf);
배치관리자
- FlowLayout 배치관리자 : 컴포넌트가 삽입되는 순서대로 왼쪽에서 오른쪽으로 배치, 배치할 공간이 없으면 아래로 내려와서 반복
public class FlowLayOutEx extends JFrame{ public FlowLayOutEx() { JPanel panel; panel = new JPanel(); //패널에 배치를 담당하는 배치관리자를 flowlayout으로 하겠다는 의미 //panel.setLayout(new FlowLayout()); panel.setLayout(new FlowLayout(FlowLayout.CENTER,30,40)); add(panel); panel.add(new JButton("버튼1")); panel.add(new JButton("버튼2")); panel.add(new JButton("버튼3")); panel.add(new JButton("버튼4")); panel.add(new JButton("버튼5")); setTitle("flowlayout"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new FlowLayOutEx(); } }
- BorderLayout 배치관리자 : 컨테이너의 공간을 동,서,남,북,중앙으로 5개의 영역으로 나눔. 5개의 영역에 컴포넌트를 배치.
public class BorderLayoutEx extends JFrame{ public BorderLayoutEx() { JPanel panel = new JPanel(); add(panel); // borderlayout으로 배치관리자 지정 panel.setLayout(new BorderLayout()); panel.add(new JButton("벝은1"), BorderLayout.CENTER); panel.add(new JButton("벝은2"), BorderLayout.NORTH); panel.add(new JButton("벝은3"), BorderLayout.SOUTH); panel.add(new JButton("벝은4"), BorderLayout.EAST); panel.add(new JButton("벝은5"), BorderLayout.WEST); setTitle("BORDER-LAYOUT"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new BorderLayoutEx(); } }
댓글남기기