Super Noob Help~MouseEvent / Frame

时间:2013-08-13 15:24:47

标签: java mouseevent frame

几周前我刚刚开始进入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()添加了一个mouselistener,并添加了一个检查框架内点击的监听器。当我尝试编译程序时,我得到了这个:

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个错误

根据我的理解,似乎系统甚至不将该行识别为事件监听器。我在某处弄乱了我的语法吗?

1 个答案:

答案 0 :(得分:2)

您无法直接在Java中的另一个方法中定义方法。在您的情况下,您直接在另一个方法(称为constructormouseClicked()的特殊方法中定义ClickCounter()方法。

我建议在继续之前先选择一个基本的Java tutorial。至少让自己熟悉语法。