Я пытаюсь сделать карту памяти, соответствующую игре, известной как Концентрация. Пока у меня 3 класса. Память расширяет JFrame реализует ActionListenerПопытка изменить значок на JButton при нажатии
Совет расширяет JPanel реализует ActionListener
Cell расширяет JButton
Я до сих пор достигнуто окно всплывал. Используйте список для добавления пар типов ячеек. Распределите все ячейки случайным образом по моей плате. Отображение назад (img) всех ячеек (есть 24 ячейки, 4 строки 6 столбцов). Теперь, когда я нажимаю на свою карточку, я получаю белое изображение. На данный момент, как краткосрочная цель, все, чего я пытаюсь достичь, заключается в том, что, когда я нажимаю на кнопку, на кнопке появляется соответствующее изображение.
Я реализовал ActionPerformed таким образом, в классе Board.
public void actionPerformed(ActionEvent e){
if(e.getSource() instanceof Cell){
Cell temp = (Cell)e.getSource();
temp.setSelected(true);
if (temp.selected()){
int row = temp.getRow();
int column = temp.getColumn();
board[row][column].setIcon2();
}
}}
Мой набор выбранных методов служит только для того, чтобы изменить значение булевой переменной в классе Cell на true. Это мой метод setIcon2 в классе Cell.
public void setIcon2(){
ImageIcon x = new ImageIcon();
x = getImageIcon();
setIcon(x);
}
Вот метод getImageIcon в классе Cell.
private ImageIcon getImageIcon() {
int temp=0;
int id;
if (localSelected) {
id = getType();
String tempId = Integer.toString(id);
icons[temp] = new ImageIcon("img-" + tempId + ".jpg");
temp++;
return icons[temp];
} else {
id = IMAGE_NUMBER;
String strId = Integer.toString(id);
icons[id] = new ImageIcon("img-" + strId + ".jpg");
}
return icons[id];
}
Нет ошибок компиляции или предупреждений любого рода. Метод getType возвращает целочисленную переменную, связанную со значением, хранящимся на моей игровой плате. (2D-массив типа Cell).
Попытался объяснить мое затруднительное положение как можно более четко, любое направление будет высоко оценено и оценено. Спасибо Mjall2
Я просто попытался использовать метод setSelectedIcon (я уже использую метод setIcon) Теперь изображение не изменяется, а только подсвечивается. – Mjall2
Получил! благодаря! – Mjall2
См. Также этот [родственный пример] (http://stackoverflow.com/a/7360696/418556). –