禁用时如何阻止JButton变灰?

我必须写一个纸牌游戏。 单击一张卡时会生成随机卡片图像,但由于您只能单击该卡片一次,因此单击该按钮后将被禁用。 如何在卡片图像被单击后停止变灰,以便新生成的卡片图像清晰可见?

//Actions performed when an event occurs public void actionPerformed(ActionEvent e) { if (e.getSource() == card1) { randomInteger(); card1.setIcon(cardImages[randomInt]); card1.setEnabled(false); } else if (e.getSource() == card2) { randomInteger(); card2.setIcon(cardImages[randomInt]); card2.setEnabled(false); } else if (e.getSource() == card3) { randomInteger(); card3.setIcon(cardImages[randomInt]); card3.setEnabled(false); } else if (e.getSource() == card4) { randomInteger(); card4.setIcon(cardImages[randomInt]); card4.setEnabled(false); } else { randomInteger(); card5.setIcon(cardImages[randomInt]); card5.setEnabled(false); } } } 

您只需将按钮的禁用图标设置为与按钮图标相同的值即可。 看这个例子:

在左侧是一个按钮,我在其中设置了icon和disabledIcon。 在右边我只设置了图标:

例

 import java.awt.BorderLayout; import java.net.MalformedURLException; import java.net.URL; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.SwingUtilities; public class TestDisabledButtons { public static final String CARD_URL = "http://assets0.wordansassets.com/wvc-1345850020/wordansfiles/images/2012/8/24/156256/156256_340.jpg"; protected void createAndShowGUI() throws MalformedURLException { JFrame frame = new JFrame("Test button"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ImageIcon imageIcon = new ImageIcon(new URL(CARD_URL)); JButton button = new JButton(imageIcon); JButton button2 = new JButton(imageIcon); button.setDisabledIcon(imageIcon); button.setEnabled(false); button2.setEnabled(false); frame.add(button, BorderLayout.WEST); frame.add(button2, BorderLayout.EAST); frame.pack(); frame.setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { try { new TestDisabledButtons().createAndShowGUI(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); } } 
Interesting Posts