Java ActionListener实现
Netbeans将Java ActionListener实现,java,swing,netbeans,interface,Java,Swing,Netbeans,Interface,Netbeans将ActionListener视为用户定义的界面,并显示错误 方法不会重写或实现超类型中的方法 还有一件奇怪的事情,如果我删除了一行:import java.awt.event.*,它不会给出一个错误,这没有任何意义 package mycalculator; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MyCalculator extends JFrame im
ActionListener
视为用户定义的界面,并显示错误
方法不会重写或实现超类型中的方法
还有一件奇怪的事情,如果我删除了一行:import java.awt.event.*
,它不会给出一个错误,这没有任何意义
package mycalculator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyCalculator extends JFrame implements ActionListener {
private JButton Cbtn;
private JButton eqbtn;
private JButton opbtn[] = new JButton[4];
private JButton digbtn[] = new JButton[10];
private JLabel disp;
public MyCalculator() {
Container c = this.getContentPane();
c.setLayout(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(212,290);
this.setResizable(false);
disp = new JLabel("0");
disp.setBounds(5,10,190,30);
c.add(disp);
Cbtn = new JButton("C");
Cbtn.setBounds(105, 200,45,45);
c.add(Cbtn);
eqbtn = new JButton("=");
eqbtn.setBounds(5,200,45,45);
c.add(eqbtn);
for (int i = 0; i < digbtn.length; i++) {
digbtn[i] = new JButton(i+"");
if (i == 0) {
digbtn[i].setBounds(55,200,45,45);
} else {
digbtn[i].setBounds(5+((i-1)%3)*50,50+((i-1)/3)*50,45,45);
}
c.add(digbtn[i]);
//digbtn[i].addActionListener(this);
}
String str [] = {"+", "-", "*", "/"};
for (int i = 0; i < opbtn.length; i++) {
opbtn[i] = new JButton(str[i]);
opbtn[i].setBounds(155,50+50*i, 45,45);
c.add(opbtn[i]);
//opbtn[i].addActionListener(this);
}
disp.setBorder(BorderFactory.createLineBorder(Color.black));
disp.setHorizontalAlignment(SwingConstants.RIGHT);
}
//here
@Override
public void actionPerformed(ActionEvent e) {
JButton pressed = (JButton)e.getSource();
if (disp.getText().equals("0")) {
disp.setText(pressed.getText());
} else {
disp.setText(disp.getText().concat(pressed.getText()));
}
}
public static void main(String[] args) {
MyCalculator frmCalc1 = new MyCalculator();
frmCalc1.setVisible(true);
}
}
package-mycalculator;
导入java.awt.*;
导入java.awt.event.*;
导入javax.swing.*;
公共类MyCalculator扩展JFrame实现ActionListener{
私人JButton-Cbtn;
专用按钮eqbtn;
私有JButton opbtn[]=新JButton[4];
私有JButton digbtn[]=新JButton[10];
私人JLabel disp;
公共MyCalculator(){
容器c=this.getContentPane();
c、 setLayout(空);
此.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
这个.设置大小(212290);
此参数为.setresizeable(false);
disp=新的JLabel(“0”);
分界点(5,10190,30);;
c、 添加(disp);
Cbtn=新的按钮(“C”);
Cbtn.立根(105200,45,45);
c、 添加(Cbtn);
eqbtn=新的JButton(“=”);
方程b.立根(5200,45,45);
c、 添加(eqbtn);
对于(int i=0;i
您使用的是什么Java版本?版本8更新77(build 1.8.0_77-b03)我怀疑这可能是由于Netbeans设置造成的。我想说的是,只导入您需要的包是一种很好的做法。避免使用*导入所有内容。是的,我试过了,效果很好,但这没有任何意义,导入整个软件包(无论性能如何,我知道这不是一个好主意)不应该完成这项工作吗?!此外,我还有其他项目,在这些项目中,我在同一个编译器上导入了相同的包,效果很好。创建项目/文件或尝试在项目中查找配置错误