JAVA No Layout Manager

레이아웃을 사용하지 않고 바로 프로그램을 작성할 수도 있다.
이런경우
getContentPane().setLayout(null);
으로 호출하고, 컴포넌트의 크기와 위치를 일일이 다 지정해주어야 된다.
플랫폼 환경이 변하거나, 전체적인 프레임의 크기가 변경되는 경우에는 컴포넌트의 크기와 위치가 기존 의도했던 것과 다른 결과를 나타낼 수도 있기 때문에 유의해야 한다.


Reference:최종명 외 2인,프로그래머를 위한 JAVA2 4E,홍릉출판사


NoLayout.java




  1. import javax.swing.*;
  2. public class NoLayout extends JFrame {
  3.     JButton ok,cancel;
  4.     JLabel lname,lphone;
  5.     JTextField name, phone;
  6.    
  7.     public NoLayout(){
  8.         super("No Layout Manager");
  9.        
  10.         getContentPane().setLayout(null);
  11.        
  12.         lname = new JLabel("이름");
  13.         lname.setSize(50,30);
  14.         lname.setLocation(20,40);
  15.         getContentPane().add(lname);
  16.        
  17.         name = new JTextField();
  18.         name.setSize(200,30);
  19.         name.setLocation(80,40);
  20.         getContentPane().add(name);
  21.        
  22.         lphone = new JLabel("전화");
  23.         lphone.setSize(50,30);
  24.         lphone.setLocation(20,120);
  25.         getContentPane().add(lphone);
  26.        
  27.         phone = new JTextField();
  28.         phone.setSize(200,30);
  29.         phone.setLocation(80,120);
  30.         getContentPane().add(phone);
  31.        
  32.         ok = new JButton("OK");
  33.         ok.setSize(100,40);
  34.         ok.setLocation(50,200);
  35.         getContentPane().add(ok);
  36.        
  37.         cancel = new JButton("CANCEL");
  38.         cancel.setSize(100,40);
  39.         cancel.setLocation(200,200);
  40.         getContentPane().add(cancel);
  41.        
  42.         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  43.         setVisible(true);
  44.         setResizable(false);
  45.         setSize(350,300);
  46.     }
  47.     public static void main(String args[]){
  48.         new NoLayout();
  49.     }
  50. }

     44번줄의 setResizable(false); 의 경우 레이아웃매니저를 설정하지 않았기 때문에 크기를 변경할 경우, 의도했던바와 다른 결과를 가져오기 때문에 resizing disable상태로 만들어두었다.

    결과

    44) setResizable(true)로 변환하고 크기를 변환시킨경우


댓글

이 블로그의 인기 게시물

[Win32 API] WINAPI - 함수호출규약

JAVA Frame Icon setting

JAVA Spinner