有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使按钮在按下之前不显示图标

我试着做一个简单的记忆游戏,如果两个按钮而不是图标匹配,分数就会增加。我一直在思考如何在点击按钮后显示图标。到目前为止,我使用了:

public class NextFrame extends javax.swing.JFrame {

    /**
     * Creates new form NextFrame
     */
    public NextFrame() {
        initComponents();
 
     btnCard1.setIcon(null);
     btnCard2.setIcon(null);
     btnCard3.setIcon(null);
     btnCard4.setIcon(null);
     btnCard5.setIcon(null);
     btnCard6.setIcon(null);
     //list goes on....
    }

    private void btnCard1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        //Not sure what goes here....
    }

使用java Swing,我将图标放置在JButtons中。因此,只有当用户点击它时,我才希望选中的按钮显示图标。通过将按钮的属性设置为pressedIcon,当我按下并单击按钮时,图标只会显示。如何使图标在我单击一次时相当固定

另外,由于我的图像已经存在于GUI中,而且我刚开始只是将每个按钮设置为null,所以有没有一种方法可以将null更改为实际图标


共 (1) 个答案

  1. # 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);