繁体   English   中英

单击一次按钮时执行操作,而单击两次,三次等时执行其他操作。(Netbeans,Java)

[英]Perform action when button clicked once and do a different action when clicked twice, three times etc. (Netbeans, Java)

我是Java编程的新手,想制作一个基本的游戏,单击一次即可显示图像,单击两次可显示不同的图像,等等。我知道如何进行所有操作,但我不知道如何跟踪任何点击,然后根据已完成的点击次数执行操作(很难解释,很抱歉...)

我...想做一个基本的游戏,当单击一次时显示一个图像,单击两次时显示一个不同的图像,等等。我知道如何进行所有操作,但我不知道如何跟踪任何点击

根据我的评论,为带有ActionListener的类提供一个int字段,称为buttonCount,并在每次按下按钮时将其递增-在按钮ActionListener的actionPerformed方法内部: buttonCount++

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

在ActionListener的actionPerformed方法中,更改显示的图像。 如何更改所有内容取决于您如何显示它,还没有显示给我们看,因此我无法提供任何代码。

一种简单的方法是创建一个ImageIcons的ArrayList来保存图像(当然是ImageIcons),然后在ArrayList上调用get(buttonCount)以获取适当的ImageIcon,并通过setIcon(...)在JLabel中显示它setIcon(...)方法。 确保buttonCount小于ArrayList的大小,以免出现ArrayIndexOutOfBoundsException。 一种方法是通过ArrayList的大小来修改buttonCount。 这将允许您循环浏览图像集合。

同样,您将需要阅读有关如何使用JButton的Swing教程,然后将大问题分解为小步骤,一次尝试解决每个步骤。

同样,如果您需要更多细节和更具体的帮助,则必须显示您尝试过的内容,并详细说明使用它可能遇到的问题。 我最真诚的信念和哲学是:通过脑力劳动和汗水强迫大脑去做新的和不熟悉的事情,从而使您学习最多。 因此,您将一无所获。

您可以通过这种方式计算鼠标的点击次数。 通过使用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);
    }

}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM