Как изменить изображение JButton? - PullRequest
0 голосов
/ 11 марта 2009

Я работаю над программой игр с памятью. У меня есть 30 кнопок на JPanel. Когда пользователь щелкает и находит совпадение (имеется в виду две кнопки с одинаковым изображением), я хочу изменить изображение на JButton на другое изображение. Однако этого не происходит во время работы программы.

Как я могу это сделать?

Я делал это:

cards[i].setIcon(cardBack);

где cardBack - это ImageIcon, который у меня уже есть.

Ответы [ 2 ]

5 голосов
/ 11 августа 2014

Вы можете использовать этот код:

Icon i=new ImageIcon("image.jpg"); jButton1.setIcon(i);

и скопируйте ваше изображение (image.jpg) в папку вашего проекта!

1 голос
/ 08 марта 2014

Используйте JToggleButton. Более конкретно, используйте методы setIcon и setSelectedIcon. Используя этот подход, вы не будете изобретать велосипед заново.

Пример:

import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JToggleButton;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

final class JToggleButtonDemo {
    public static final void main(final String[] args) {
    SwingUtilities.invokeLater(new Runnable(){
        @Override
        public void run() {
            createAndShowGUI();
        }
    });
}
private static final void createAndShowGUI(){
    final JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLayout(new FlowLayout()); // For presentation purposes only.
    final JToggleButton button = new JToggleButton(UIManager.getIcon("OptionPane.informationIcon"));
    button.setSelectedIcon(UIManager.getIcon("OptionPane.errorIcon"));
    frame.add(button);
    frame.pack();
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
 }
}
...