매우 간단한 Java 프로그램이 있습니다 (아래 참조). GridLayout에는 20 개의 행과 4 개의 열이 있습니다. 아시다시피 요소는 (GridLayout) 정의에 의해 가로로 추가되어야합니다. 그러나 두 요소 (레이블)를 수직으로 배치합니다.GridLayout에서 크기가 조정되는 JLabels
나는 그것들을 색칠하고 레이블이 전체 행을 차지하므로 수직적 효과를 얻음을 깨달았다. 하지만 setSize (5,5)를 사용하여 각각을 작게 만들었지 만 여전히 전체 행을 차지합니다. 왜 이런 일이 일어나는 지에 대한 조언과 더 작은 크기/고정/고정 방법은 무엇입니까?
public class Sam extends JFrame {
public JButton btn_arr;
public Container c;
public JLabel[] lbl = new JLabel[20];
public Sam()
{
c = getContentPane();
c.setLayout(new GridLayout(20,4));
lbl[1] = new JLabel("Column1");
c.add(lbl[1]);
lbl[2] = new JLabel("Column2");
c.add(lbl[2]);
show();
}
public static void main(String[] args)
{
Sam x = new Sam();
x.setVisible(true);
x.setSize(7500,4500);
}
}
동일한 행에 두 개의 JLabel이 필요하므로 두 요소를 차례로 추가하여이 작업을 수행해야합니다. 2 열이 있고 다른 요소 위에 하나씩 두 개의 요소가 필요한 경우 첫 번째 요소를 추가하고 빈 레이블을 추가 한 다음 두 번째 요소를 추가합니다 (그 트릭을 알고 있음). 그러나 이것은 사실이 아닙니다. 배열의 처음 두 요소 (각 JLabel)가 여기 같은 줄에 있어야합니다. 고맙습니다! – Sam
@Sam : 편집을 참조하십시오. 하지만 여전히 JTable이 더 잘 작동하지 않을지 궁금합니다. –
가변 개수의 행에 대해 0을 사용할 수 있다는 것을 알지 못했습니다. 정확히 내가 관심이 있었던 부분입니다. 우수하고 많은 감사합니다! – Sam