1

几周前我刚开始接触java,我有一个小问题。我没有编程经验,我现在所做的就是在网上搜索小教程之类的。我目前正在用 awt 玩一些活动,并发现自己在网上有一个小 Java 课程,我可以随意摆弄。

无论如何,我正在尝试使用 MouseEvent 函数/接口在鼠标移动/单击/按下时执行某些操作,特别是在框架内。在这种情况下,ClickCounter() 是框架类。

public ClickCounter() {
    this.addMouseListener(this);
    public void mouseClicked(MouseEvent ae) {
        clicks++;
        String s = Integer.toString(clicks);
        objTextField.setText("Clicks:" + s);
    }
    ClickCounter.addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent we) {
            System.exit(0);
        }
    });
    ClickCounter.setSize(2000, 2000);
    ClickCounter.setVisible(true);
    TextField objTextField = new TextField(100);
    objTextField.setBounds(0, 0, 500, 500);
    objTextField.setText("Click here and I will count the number of times you click");
    ClickCounter.add(objTextField);
}

这是一团糟,我知道。正如您在前几行中看到的,我向 CLickCounter() 添加了一个鼠标侦听器,并添加了一个侦听器来检查框架内的点击。当我尝试编译程序时,我得到了这个:

ClickCounter.java:9:错误:表达式的非法开始

  public void mouseClicked(MouseEvent evt) {
  ^

ClickCounter.java:9:错误:表达式的非法开始

  public void mouseClicked(MouseEvent evt) {
         ^

ClickCounter.java:9:错误:';' 预期的

  public void mouseClicked(MouseEvent evt) {
                          ^

ClickCounter.java:9:错误:';' 预期的

  public void mouseClicked(MouseEvent evt) {
                                         ^

4 个错误

据我了解,系统似乎甚至没有将该行识别为事件侦听器。我在某处搞砸了我的语法吗?

4

1 回答 1

2

您不能直接在 Java 中的另一个方法中定义一个方法。在您的情况下,您mouseClicked()直接在另一个方法(一种称为构造函数的特殊方法)中定义方法ClickCounter()

我建议在进一步学习之前先学习一个基本的Java 教程。至少让自己对语法感到满意。

于 2013-08-13T15:27:14.663 回答