반응형
SMALL

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

 




반응형
LIST
반응형
SMALL

컨텐트팬에만 컴포넌트를 부착할수 있으므로 JFrame객체을 생성하며 자동으로 컨텐트펜을 생성시킬수 있습니다. 


* 코딩

 1. JFrame  jf = new JFrame():  객체를 생성합니다.

 2. Container content = if.getContentPane(); JFrame생성후 Container 만들수 

                                                     있습니다.

즉, JFrame의 생성 당시 붙어 있던 컨텐트팬을 제거하고 새로운 컨텐트팬을 만들어서 붙일수 있다. 

setTitle ("JFrame와 container"); 윈도우 제목명을 넣어줍니다.

setDefaultCloseOperation(JFrame.EXII_ON_CLOSE); 프레임이 닫힐때 프로그램도 함께 종료됩니다.

Container content = getContentPane(); contentPane 을 불러온다.

content.setBackground(Color.Green); 배경색은 그린으로 설정합니다.

content.setLaout(new FlowaLayout());컨텐트팬에 버튼을 부착할때 순서를 정하는 배치관리자 설정입니다.

content.add(new JButton("OK")); 버튼 'ok'로 설정했습니다.

content.add(new JButton("Cancel");버튼 'cancel"로 설정했습니다.

content.add(new JButon("Ignore");버튼을 'Ignore"로 설정했습니다.


setSize(300,300,); 가로세로 300,300으로 화면을 설정했습니다.

setVisible(true); 프레임을 화면에 출력하겠다는 설정입니다. 이것은 '꼭'하셔야합니다.


반응형
LIST

+ Recent posts