我有這個代碼,我想把我的頁面中的所有按鈕放在arraylist中,考慮他們的名字,如果它的名字是例如btn_2它應該是列表的第二個元素。 它給出了一個錯誤,並說不能把字段投給Jbutton,因爲我的列表類型是Jbutton而不是field.his並不是我所有的代碼只是其中的一部分,但所有的代碼都由ading面板組成,然後向面板添加一個按鈕以及一些標籤。我怎麼能把Jbuttons考慮到arraylist考慮他們的名字?
getContentPane().setForeground(Color.DARK_GRAY);
getContentPane().setLocation(-405, -87);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().setLayout(null);
panelPOD1 = new JPanel();
panelPOD1.setBounds(65, 13, 353, 313);
panelPOD1.setBorder(new BevelBorder(BevelBorder.RAISED, Color.DARK_GRAY, null, null, null));
getContentPane().add(panelPOD1);
panelPOD1.setLayout(null);
JPanel panel = new JPanel();
panel.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, Color.DARK_GRAY, null, null, null));
panel.setBounds(10, 11, 59, 59);
panelPOD1.add(panel);
panel.setLayout(null);
btn_1 = new JButton();
btn_1.setText("");
btn_1.setEnabled(false);
btn_1.setBorder(new RoundedBorder());
btn_1.setBounds(17, 15, 26, 24);
panel.add(btn_1);
btn_3 = new JButton("");
btn_3.setEnabled(false);
btn_3.setForeground(SystemColor.textInactiveText);
btn_3.setBackground(SystemColor.activeCaption);
btn_3.setBounds(10, 15, 26, 24);
btn_3.setBorder(new RoundedBorder());
panel1.add(btn_3);
panel.setLayout(null);
btn_5 = new JButton("");
btn_5.setEnabled(false);
btn_5.setBounds(11, 15, 26, 24);
btn_5.setBorder(new RoundedBorder());
panel_1.add(btn_5);
btn_2 = new JButton("");
btn_2.setEnabled(false);
btn_2.setBounds(12, 15, 26, 24);
btn_2.setBorder(new RoundedBorder());
panel_2.add(btn_2);
btn_4 = new JButton("");
btn_4.setEnabled(false);
btn_4.setBounds(11, 15, 26, 24);
btn_4.setBorder(new RoundedBorder());
panel_3.add(btn_4);
JPanel panel_4 = new JPanel();
panel_4.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null, null, null));
panel_4.setBounds(10, 81, 59, 59);
panelPOD1.add(panel_4);
panel_4.setLayout(null);
btn_6 = new JButton("");
btn_6.setEnabled(false);
btn_6.setBounds(10, 15, 26, 24);
btn_6.setBorder(new RoundedBorder());
panel_4.add(btn_6);
Integer search_index=0;
java.lang.reflect.Field[] fields;
Integer arrayIndex=0;
ArrayList<JButton> rockets;
boolean allFound=false;
while (!allFound)
{
for (int i =0;i<fields.length;i++)
{
if(fields[i].getName().equals("btn"+arrayIndex.toString()))
{
rockets.add(arrayIndex,fields[i]);
}
if (arrayIndex==50)
{
allFound = true;
}
}
}
請解釋爲什麼通過使用'java.lang.reflect.Field []字段' – mKorbel 2013-04-05 08:02:02
嘗試添加到列表類型轉換。 – 2013-04-05 08:02:02
請使用地圖嗎?你可以直接設置字段的名稱(使用setName) – MadProgrammer 2013-04-05 08:03:37