Ich versuche, GUI wie im ersten Bild angegeben, aber ich bin nicht in der Lage, es zu tun. here is the image Ich bin nur ein combo1, Combo2, combo3 und serialNoLabel statt 5 bekommen [5 ist die Größe der Liste]Wie können Komponenten im JDialog dynamisch hinzugefügt werden?
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();
}
Sie nicht ein Layout für Sie masterDialog haben? Kannst du auch Bildschirm drucken, was du bekommst? Mit einem schnellen Blick glaube ich wirklich, dass es ein Layout-Problem ist. – LBes
Wenn Sie eines der MasterPanels zum MasterDialog hinzufügen, fügen Sie es zum Mittelpunkt eines BorderLayouts hinzu. Sie überlagern Ihre MasterPanels effektiv, sodass nur einer angezeigt wird. Sie benötigen ein MainPanel (JPanel) mit einem FlowLayout. Sie würden die masterPanels zum mainPanel hinzufügen und schließlich das mainPanel zum masterDialog hinzufügen. –
@LBes Ich benutze MigLayout für MasterDialog. –