[ java ] in KIDS 글 쓴 이(By): guest (부나비) <150.183.46.202> 날 짜 (Date): 1998년 8월 3일 월요일 오후 08시 02분 20초 제 목(Title): [질문] GridLayout이 잘 안되는 군요...HEL 그리드 레이아웃의 생성자는 다음과 같은것으로 알고 있습니다. GridLayout() GridLayout(int, int) GridLayout(int, int, int, int) 이때 첫번째와 두번째의 int로 그리드의 세로와 가로의 갯수를 정하는 것으로 알고 있었는데.... 다음과 같이 코딩을 하니까 프레임에 꽉 차지 않고 어설픈(?) 모습으로 나타나는 군요.... 프로그램의 요는 임의 갯수(labelNum)의 라벨을 발생시키고 그리드레이아웃( new GridLayout(0, labelNum, 0, 0) )을 레이아웃관리자로 가지는 페널(myPanel)에 이 레이블들을 순서대로 붙입니다.. 그리고 이 페널을 프레임(myLay)에 붙입니다. 레이블들은 교대로 검은색과 흰색을 배경으로 삼으면서 마지막 레이블만 파란색을 가지도록 했습니다... 페널은 프레임에 꽉차게 나오는 것 같은데... 레이블들을 페널에 붙일때는 꽉차게 나오지 않는군요(표현이 맞나???) 다음이 전체 소스입니다. 실행시켜보면 프레임의 크기를 조절하는데 따라서 레이블들의 크기는 변하는것 같은데 페널의 전체를 차지하도록 조절되지는 않는군요.... 부디 방법을 알려 주시길 부탁드립니다... //------------------------------ begin ----------------------- import java.awt.*; import java.awt.event.*; public class Lay extends Frame { private static int labelNum = 50; //생성될 레이블의 갯수입니다. Panel myPanel = new Panel(); public Lay() { addWindowListener (new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(-1); }}); myPanel.setLayout(new GridLayout(0, labelNum, 0, 0)); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // 레이아웃 관리자를 설정했습니다. this.setSize(600,60); } public static void main(String args[]) { Lay myLay = new Lay(); myLay.addLabel(myLay.makeLabel()); myLay.add(myLay.myPanel); myLay.show(); } public static Label[] makeLabel() { Label[] temp_label = new Label[labelNum]; int c = -1; for(int i = 0 ; i < temp_label.length ; i++) { temp_label[i] = new Label(); c *= -1; if(c == -1 ) { temp_label[i].setBackground(Color.white); }else { temp_label[i].setBackground(Color.black); } if( (temp_label.length-1) == i) temp_label[i].setBackground(Color.blue); } return temp_label; } public void addLabel(Label[] l) { int c = l.length; for(int i = 0 ; i < c ; i ++) myPanel.add(l[i]); } } //------------------------------ end ----------------------- |