2009-03-10 5 views
0

저는 메모리 게임 프로그램을 만들고 있습니다. JPanel에 30 개의 JButton이 있습니다. 사용자가 클릭하고 동일한 이미지가있는 두 개의 버튼을 의미하는 일치 항목을 찾으면 JButton의 이미지를 다른 이미지로 변경하려고합니다. 그러나 이것은 프로그램이 실행되는 동안 발생하지 않습니다.JButton의 이미지를 변경하는 방법?

어떻게하면됩니까? 나는이 일을했다

: cardBack 내가 이미 가지고있는 이미지 아이콘입니다

cards[i].setIcon(cardBack); 

.

+0

올바른 방법으로 아이콘을 변경할 수 있습니다. 귀하의 오류는 아마도 코드의 다른 부분 일 것입니다. – Pesto

답변

1

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); 
} 
} 
5

는이 코드를 사용할 수 있습니다

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

하고 프로젝트 폴더에 이미지 (image.jpg를)을 복사!

관련 문제