用户界面Java basic GUI程序错误
在我的在线Java类中,我需要编写一个程序,计算一帧内鼠标单击按钮的次数。这是我的密码:
import java.awt.*;
import java.awt.event.*;
public class option1 extends Frame {
option1() {
setTitle("Final Project Option 1");
setSize(300,300);
show();
}
public static void main(String[] args) {
option1 test = new option1();
int a = 0;
String s1 = "" + a;
Frame objFrame;
Button objButton1;
Label objLabel1;
objFrame = new option1();
objButton1 = new Button("Button");
objLabel1 = new Label();
objLabel1.setBounds(150,220,50,30);
objButton1.setBounds(40,35,50,50);
objLabel1.setText(s1);
objButton1.addMouseListener(new MyMouseListener()); //line 29
objFrame.add(objLabel1);
objFrame.add(objButton1);
}
public class MyMouseListener extends MouseAdapter {
public void mouseClicked(MouseEvent me) {
a++; //line 36
}
}
}
编译时,我得到两个错误。一个错误出现在第29行,这是“非静态变量,无法从静态上下文引用”,另一个错误出现在第36行,这是“找不到符号”
那么,我到底做错了什么?我希望响应者能准确地告诉我需要做什么来解决问题,并避免使用技术术语,因为我对编程相当陌生
# 1 楼答案
我只是想让你的代码正常工作。但是关于标准Java编码还有一些问题。但是你应该考虑以前关于编码风格的答案。
# 2 楼答案
通常,尽可能快地从
main
方法进入非静态上下文ActionListener
,因为鼠标不是触发按钮的唯一方式# 3 楼答案
我看到两个问题,即您的内部类应该是
static
(在没有option1
实例的情况下使用它,该实例可能应该是Option1
,以符合Java命名约定),并且您需要定义和初始化a
。差不多另外,我建议您考虑使用更现代的^{} 代替旧的^ {CD6>}。
编辑
您需要保存对
MouseListener
类的引用然后你可以像
a
一样得到它最后,您最初的
"" + a
方法是"0"