2013-10-29 82 views
0

我使用Netbeans来创建一个Java应用程序。我仍然是初学者。我有4个按钮,当用户点击其中一个按钮时,我想更改一个图标。我已经把按钮和一个图标,但我不知道如何继续。单击按钮更改图标。 Java

+0

还有关于JButton的更多信息?你知道如何添加ActionListener给他们吗?首先向我们展示一些努力 – Sage

+0

我只添加JButton和一个图标。在这一刻,我不知道ActionListener,但我会尝试搜索它。但我现在很困惑。我很抱歉,因为我没有告诉你一些努力,但我正在尝试开始。 – user2933161

+0

最后,我dit ..感谢“ActionListener”!!! :)现在,我有另一个问题..我怎么能undestand哪个按钮有点击的用户?谁都知道? – user2933161

回答

1

您将需要一个ActionListener来更改图标(为此使用ImageIcon)。将该ActionListener添加到应该响应点击的Button中,并执行该操作。

button.addActionListener(/*here your listener*/); 
+0

我们都知道。但我们至少可以期望他知道一个听众可能会告诉我们他的努力。 – Sage

+0

感谢您的回答。但我是begginer,所以如果你能给我更多的细节或例子,它会非常有用。 – user2933161

+0

@Sage:我知道。我只是告诉他要寻找什么。我没有在这里抛出完整的代码答案。当OP显示没有太多努力时,我会通过提供搜索条件来保持我的答案简单并指导正确的方向。 –

0

您是否使用netbeans的windowbuilder? 如果是,检查生成的代码为您指定的按钮,看看他们是如何做到这一点:)

+0

我不明白我要做什么.. :( – user2933161

+0

如果你可以等到明天,我会发布你的例子! – Leviathan

+0

好的,非常感谢你! – user2933161

0

好吧,我创建了一个新的JFrame表格到我的包名为TestFrame。

public class TestFrame extends javax.swing.JFrame { 

     static public ImageIcon imageCross; 
     static public ImageIcon imageCircle; 


     URL cross = TestFrame.class.getResource("cross.jpg"); 
     URL circle = TestFrame.class.getResource("circle.jpg"); 

     boolean clicked = true; 
    /** 
    * Creates new form TestFrame 
    */ 
    public TestFrame() { 
     imageCross = new javax.swing.ImageIcon(cross); 
     imageCircle = new javax.swing.ImageIcon(circle); 
     initComponents(); 
    } 
    ... 

这就是我如何声明我的图像。

现在我需要改变他们,当我点击一个按钮。

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {           
    if(clicked) { 
     jButton1.setIcon(imageCircle); 
     clicked = false; 
    } else { 
     jButton1.setIcon(imageCross); 
     clicked = true; 
    } 

} 

只需添加你需要的所有图像。为每个单独的JButton添加一个actionPerformed(),并用if条件或switch/case(如果有更多)切换图标。