Java GUI에서 Layout에 대하여 알아보겠습니다. JFrame을 상속받으면 AWT와 SWing 메소드를 사용할수 있습니다. Layout은 FlowLayout ,BorderLayout, GridLayout 과 layout을 NUll로 표시해서 사용할수 있습니다.
◈ FlowLayout
왼쪽부터 순서대로 오른쪽으로 배치하는 기능입니다.
◈ BorderLayout
컨테이너의 공간을 위쪽,아래,왼쪽,오른쪽,중앙으로 배치하는 기능입니다.
◈ GirldLayout
컨테이너의 공간을 2차 그리드로 나누고, 입력하는 순서대로 우로, 위에서
아래로 배치합니다.
◈ CardLayout
글자 그래도 카드쌓듯이 컴포넌트를 배치하는 기능이빈다.
→ BorderLayout 메소드와 출력입니다.
《 소 스 설 명》
setTitle("BorderLayout Sample"); 제목을 넣어습니다.
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 윈도우 창을 닫으면 프로그램을 종료하는 메소드입니다.
Container con = getContentPane(); 컨테이너를 불러오는 코드입니다.
con.setLayout(new BorderLayout()); 컨테이너에 BorderLayout을 만들겠다는 코드입니다.
con.add(new JButton("중앙"),BorderLayout.CENTER); 커테이너에 버튼동작을 만들고 그 버튼을 중앙에 베치하게다는 코드입니다.
각각 버튼들을 생성하여 왼쪽,오른쪽, 위,아래로 배치하시면 됩니다.
→ GridLayout
Container con = getContentPane(); 컨터에너에 불러옵니다.
GridLayout grd = new GridLayout(4,2) 4행2열을 만드는 코드입니다.
grd.setVgap(5); grid사이를 수직 간격으로 5픽셀로 설정합니다.
con.setLayout(grd); 컨터이너에 Gridlayout 부착합니다.
con.add(new JLabel("무슨확과?"): JLabel을 new로 생성합니다.
con.add(new JTextField("")); JTextField을 new로 생성합니다.
→ layout을 null
Container con =getContentPane(); 컨터에너를 불러옵니다.
con.setLayout(null); layout을 따로 만들기 않겠다는 코드입니다.
JLabel j = new JLabel("if you love me, press Button? O.k?); Layout 대신
JLabel 기능을 부착해도 됩니다. JLabel 부착후 글자를 넣오 보이도록
코드를 만들었습니다.
J.setLocation(130,50); j 위치를 130,50으로 지정합니다.
j.setSize(200,20); J 200*20으로 크기를 지정합니다.
con.add(j); JLabel 을 컨텐트팬에 부착합니다.
for(int i=i; i<=9; i++){
JButton jb= new JButton(Integer.toString(i)); 버튼을 9개를 생성하고 그 속에
integer.toString(i); 숫자 i이는 1~9까지 를 넣게다는 코드입니다.
jb.setLoation(i*13, i*15); 버튼이 한개씩 생성할때마다 버튼의 위치는
겹치지 않게 i*13,i*15만큼씩 이동해서 생성됩니다.
jb.setSize(45,45); 버튼의 크기를 설정합니다.
con.add(jb); 생성된 버튼을 컨테이너에 부착합니다.
여기서 중요한건, 버튼을 JLabel에 부착하시면 안됩니다.