几周前我刚刚开始进入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个错误
根据我的理解,似乎系统甚至不将该行识别为事件监听器。我在某处弄乱了我的语法吗?
答案 0 :(得分:2)
您无法直接在Java中的另一个方法中定义方法。在您的情况下,您直接在另一个方法(称为constructor)mouseClicked()
的特殊方法中定义ClickCounter()
方法。
我建议在继续之前先选择一个基本的Java tutorial。至少让自己熟悉语法。