【发布时间】:2014-11-26 03:52:58
【问题描述】:
我正在制作一个类似于扫雷的 4x4 棋盘。每个按钮都有一个炸弹或其他图像。
这是我的代码:
private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
this.jToggleButton1.setIcon(new javax.swing.ImageIcon("bombaa.png"));
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
this.jToggleButton1.setIcon(new javax.swing.ImageIcon("bombaa.png"));
}
也试过这种方式...
private void setIcon1(){
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("bombaa.png")));
}
并在 jButton1ActionPerformed 和 jButton1MouseClicked 中调用 setIcon() 但这会将我的图像设置为程序的主图标。
基本上我需要的是:单击一个按钮并只设置一次图像/图标。
【问题讨论】:
-
首先,不要将
MouseListeners 与JButtons 一起使用。您可以创建一个不允许将其关闭的自定义按钮模型,因此,一旦选择,它的状态将保持选中状态(直到您重置它),这样您就可以使用选中/未选中的图标属性。 -
我尝试了 Statechanged 和 ActionPerformed 但图像显示当我将鼠标悬停在按钮上时(因为这些事件包括所有可能的操作,对吗?比如鼠标悬停、鼠标释放等)。无论如何,我会考虑创建自定义按钮,如果您有任何链接将不胜感激:)
标签: java swing click icons jtogglebutton