본문 바로가기

JAVA 흥미를 더하다!

Java에서 Borderlayout,GridLayout, 기능익힉기

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에 부착하시면 안됩니다.