最初の写真のような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の1つをmasterDialogに追加すると、それをBorderLayoutの中央に追加します。マスターパネルを効果的にオーバーレイしているので、1つしか表示されません。 FlowLayoutを持つmainPanel(JPanel)が必要です。 masterPanelをmainPanelに追加し、最後にmainPanelをmasterDialogに追加します。 –
@LBes私は、masterDialogにMigLayoutを使用しています。 –