첫 번째 그림과 같이 GUI를 만들려고하지만이를 할 수 없습니다. here is the image 내가 5 대신 하나의 combo1, combo2, combo3 및 serialNoLabel을 얻고있다JDialog에서 컴포넌트를 어떻게 동적으로 추가 할 수 있습니까?
ArrayList<String> list; // the size of the list is 5
JComboBox combo1[] = new JComboBox[list.size()];
JComboBox combo2[] = new JComboBox[list.size()];
JComboBox combo3[] = new JComboBox[list.size()];
JLabel SerialNoLabel[] = new JLabel[list.size()];
JPanel masterPanel[] = new JPanel[list.size()];
JDialog masterDialog = new JDialog();
masterDialog.setVisible(true);
masterDialog.setSize(800, 500);
masterDialog.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
masterDialog.setVisible(true);
for(int j =0; j < list.size(); j++) {
masterPanel[j] = new JPanel();
SerialNoLabel[j] = new JLabel(list.get(j));
masterPanel[j].add(SerialNoLabel[j]);
combo1[j] = new JComboBox();
masterPanel[j].add(combo1[j]);
combo2[j] = new JComboBox();
masterPanel[j].add(combo2[j]);
combo3[j] = new JComboBox();
masterPanel[j].add(combo3[j]);
masterDialog.add(masterPanel[j]);
masterDialog.revalidate();
}
에 대해 더 많은 정보를 얻을 수 있습니까? 또한 화면을 인쇄 할 수 있습니까? 빠른보기와 더불어 나는 그것이 정말로 배치 문제 다라고 생각한다. – LBes
masterPanels 중 하나를 masterDialog에 추가하면이를 BorderLayout의 가운데에 추가합니다. 마스터 패널을 효과적으로 오버레이하므로 하나만 보여줍니다. FlowLayout이있는 mainPanel (JPanel)이 있어야합니다. masterPanel을 mainPanel에 추가하고 마지막으로 mainPanel을 masterDialog에 추가합니다. –
@LBes masterDialog에 MigLayout을 사용하고 있습니다. –