JAVA No Layout Manager
레이아웃을 사용하지 않고 바로 프로그램을 작성할 수도 있다.
이런경우
getContentPane().setLayout(null);
으로 호출하고, 컴포넌트의 크기와 위치를 일일이 다 지정해주어야 된다.
플랫폼 환경이 변하거나, 전체적인 프레임의 크기가 변경되는 경우에는 컴포넌트의 크기와 위치가 기존 의도했던 것과 다른 결과를 나타낼 수도 있기 때문에 유의해야 한다.
NoLayout.java
이런경우
getContentPane().setLayout(null);
으로 호출하고, 컴포넌트의 크기와 위치를 일일이 다 지정해주어야 된다.
플랫폼 환경이 변하거나, 전체적인 프레임의 크기가 변경되는 경우에는 컴포넌트의 크기와 위치가 기존 의도했던 것과 다른 결과를 나타낼 수도 있기 때문에 유의해야 한다.
Reference:최종명 외 2인,프로그래머를 위한 JAVA2 4E,홍릉출판사
NoLayout.java
- import javax.swing.*;
- JButton ok,cancel;
- JLabel lname,lphone;
- JTextField name, phone;
- public NoLayout(){
- super("No Layout Manager");
- getContentPane().setLayout(null);
- lname.setSize(50,30);
- lname.setLocation(20,40);
- getContentPane().add(lname);
- name.setSize(200,30);
- name.setLocation(80,40);
- getContentPane().add(name);
- lphone.setSize(50,30);
- lphone.setLocation(20,120);
- getContentPane().add(lphone);
- phone.setSize(200,30);
- phone.setLocation(80,120);
- getContentPane().add(phone);
- ok.setSize(100,40);
- ok.setLocation(50,200);
- getContentPane().add(ok);
- cancel.setSize(100,40);
- cancel.setLocation(200,200);
- getContentPane().add(cancel);
- setVisible(true);
- setResizable(false);
- setSize(350,300);
- }
- new NoLayout();
- }
- }
44번줄의 setResizable(false); 의 경우 레이아웃매니저를 설정하지 않았기 때문에 크기를 변경할 경우, 의도했던바와 다른 결과를 가져오기 때문에 resizing disable상태로 만들어두었다.
결과
44) setResizable(true)로 변환하고 크기를 변환시킨경우
댓글
댓글 쓰기