我对Java编程相当陌生,想制作一个基本游戏,单击一次时显示图像,单击两次时显示不同的图像等等。我知道如何做到这一切,但我不知道如何跟踪如何任何点击,然后根据已完成的点击次数执行操作(很难解释,我很抱歉......)
2 回答
我......想制作一个基本游戏,单击一次时显示图像,单击两次时显示不同的图像等等。我知道如何做到这一切,但我不知道如何跟踪任何点击
根据我的评论,给具有 ActionListener 的类一个 int 字段,比如称为 buttonCount,并在每次按下按钮时递增它——在按钮 ActionListener 的 actionPerformed 方法内:buttonCount++
然后根据点击次数执行操作(很难解释,我很抱歉......)
在 ActionListener 的 actionPerformed 方法中更改显示的图像。你如何改变它取决于你如何展示它,你还没有向我们展示的东西,所以我不能给你任何代码。
一种简单的方法是创建一个 ImageIcons 的 ArrayList 来保存您的图像(当然是 ImageIcons),然后调用get(buttonCount)
ArrayList 以获取适当的 ImageIcon 并通过其setIcon(...)
方法将其显示在 JLabel 中。确保 buttonCount 小于 ArrayList 的大小,以免出现 ArrayIndexOutOfBoundsException。一种方法是通过 ArrayList 的大小修改 buttonCount。这将允许您循环浏览您的图像集合。
同样,您将需要阅读有关如何使用 JButtons的 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);
}
}
}