按钮单击一次时执行操作,单击两次,三次等时执行不同的操作。(Netbeans,Java)

时间:2013-10-09 18:25:14

标签: java swing netbeans desktop

我是Java编程的新手,想要制作一个基本游戏,在点击一次时显示图像,在点击两次时显示不同的图像等。 我知道如何做到这一切,但我不知道如何跟踪点击次数,然后根据点击次数进行操作(很难解释,我的道歉......)

2 个答案:

答案 0 :(得分:1)

  

我...想要制作一个基本游戏,点击一次显示图像,点击两次时显示不同的图像等等。我知道如何做到这一切但我不知道如何记录如何点击

根据我的评论,为ActionListener提供一个int字段,比如名为buttonCount,并在每次按下按钮时递增它 - 在按钮内部ActionListener的actionPerformed方法:buttonCount++

  

然后根据已完成的点击次数执行操作(很难解释,我的道歉......)

在ActionListener的actionPerformed方法中,更改显示的图像。你如何改变它取决于你如何展示它,你还没有向我们展示的东西,所以我不能给你任何代码。

轻松实现的一种方法是创建ImageIcons的ArrayList来保存图像(当然是ImageIcons),然后在ArrayList上调用get(buttonCount)以获取相应的ImageIcon并通过JLabel显示它它的setIcon(...)方法。确保buttonCount小于ArrayList的大小,以免获得ArrayIndexOutOfBoundsException。一种方法是按照ArrayList的大小修改buttonCount。这样您就可以循环浏览图像集。

同样,您需要阅读how to use JButtons上的Swing教程,然后将您的大问题分解为小步骤,尝试一次解决每个步骤。

如果您需要更多细节和更具体的帮助,那么您必须展示您尝试过的内容并详细解释您可能遇到的问题。通过强迫你的大脑通过精神上的努力和汗水来做新的和不熟悉的事情,这是我真诚的信念和哲学。所以,你没有什么可失去的。

答案 1 :(得分:-1)

您可以通过这种方式计算鼠标点击次数。通过使用if-else或switch case,您可以显示图像。

public class ButtonStart extends Frame {
private int mouseclicked = 0;
TextField objTextField;

public static void main(String args[]) {
    ButtonStart BS = new ButtonStart();
}

public ButtonStart() {
    Frame objFrame;
    Button objButton;
    TextField objTextField;
    objFrame = new Frame("Clicking Buttons");
    objButton = new Button("Click me!");
    objTextField = new TextField("0");

    objFrame.addMouseListener(new MyMouseListener());
    objFrame.add(objButton);
    objFrame.add(objTextField);
    objFrame.addWindowListener(new WindowAdapter()

    {
        public void windowClosing(WindowEvent we) {
            System.exit(0);
        }
    });

}

public class MyMouseListener extends MouseAdapter {
    public void mouseClicked(MouseEvent me) {
        int mouseclicked = me.getClickCount();

        objTextField.setText("Mouse clicked this many times:"
                + mouseclicked);
    }

}

}