Я пытаюсь сделать простую игру на запоминание, в которой, если совпадают две кнопки, а не значки на них, результат увеличивается. Я застрял в том, как сделать так, чтобы значок на кнопке отображался после того, как он был нажат. ...

1
JavaBeginner 10 Апр 2021 в 07:11

1 ответ

Лучший ответ

Вы слишком много думаете.

Вы знаете, как создать значок и установить его как значок кнопки, да?

Image image = new ImageIcon("C:\\some_image.png");
JButton myButton = new JButton(imageIcon);

Что, если бы вы на самом деле создали два таких значка:

Image image1 = ImageIcon(getClass().getResource("real_image.png")
Image image2 = ImageIcon(getClass().getResource("blank_image.png")

При создании кнопки используйте пустое изображение, которое имеет тот же размер, что и реальное изображение, но не содержит фактического изображения. Причина использования пустого изображения вместо установки изображения на null заключается в том, что кнопка без изображения может фактически изменить размер после добавления изображения, что потенциально может испортить ваш макет.

JButton myButton = new JButton(image2);

Теперь в обработчике ActionPerformed, который запускается, когда пользователь нажимает кнопку, вы устанавливаете реальное изображение на кнопку:

myButton.setIcon(image1);
1
MarsAtomic 10 Апр 2021 в 04:22