我有一個程序,需要一個輸入文件,從中拉出一個顏色字+十六進制值(例如紅色0xFF0000)。我的代碼工作完美,除了我試圖用HashMap替換我的2個arrayLists ...這是事情發生錯誤的地方。我把我的代碼恢復到我以前認爲的狀態,除非現在它在單選按鈕被按下時不會改變顏色。任何人都想偷看?有人能告訴我爲什麼我的actionListener for-loop不工作嗎?
public HashMapTests() {
JPanel p1 = new JPanel();
this.getContentPane().setLayout(new GridLayout(5,4));
ButtonGroup group = new ButtonGroup();
for (int i = 0; i < colorCollection.size(); i++) {
jrbColor[i] = new JRadioButton(colorCollection.get(i));
jrbColor[i].setText(colorCollection.get(i));
group.add(jrbColor[i]);
p1.add(jrbColor[i]);
}
for(int i = 0; i < colorCollection.size(); i++){
jrbColor[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e){
for (int j = 0; j < colorCollection.size(); j++){
String hexColor = hexCollection.get(j);
if(hexCollection.get(j).equals(((JRadioButton)e.getSource()).getText())){
getContentPane().setBackground(Color.decode(hexColor));
repaint();
}
}
}
});
}
add(p1);
}
時間做一些調試,我-認爲。 –
你的輸入文件如何看? –
@LeosLiterak:它們很可能有兩列字符串 - 一個顏色名稱,後面跟着顏色int十六進制字符串的字符串表示。即「紅色0xffff0000」。無論如何,這是我的猜測。 –