私は記憶ゲームプログラムに取り組んでいます。JPanel に 30 個の JButton があります。ユーザーがクリックして一致するもの (同じ画像を持つ 2 つのボタンを意味する) を見つけたら、JButton の画像を別の画像に変更したいと考えています。ただし、これはプログラムの実行中は発生しません。
これどうやってするの?
私はこれをしていました:
cards[i].setIcon(cardBack);
cardBack は、すでに持っている ImageIcon です。
このコードを使用できます:
Icon i=new ImageIcon("image.jpg");
jButton1.setIcon(i);
画像 (image.jpg) をプロジェクト フォルダーにコピーします。
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);
}
}