这是我写得一个计算器的程序,用JBuilder,编译器提醒出现错误,这是为什么啊?哪位高手帮我看看啊?错在哪儿???
具体错误信息是:ActionListener和ActionEvent下面有红色波浪线。具体代码如下:package myjava1;
import java.awt.*;
import java.awt.Event.*;
import javax.swing.*;import myjava.Calculator;
public class Calculator1 extends JFrame{
private Container container;
private GridBagLayout layout;
private GridBagConstraints constraints;
private JTextField displayField;//计算结果显示区。
private String lastCommand;//保存+,-,*,/命令。
private double result;
private boolean start;
public Calculator1(){
super("Calculator1");
container=getContentPane();
layout=new GridBagLayout();
constraints=new GridBagConstraints();
start=true;
result=0;
lastCommand="=";
displayField=new JTextField(20);
displayField.setHorizontalAlignment(JTextField.RIGHT);
constraints.gridx=0;
constraints.gridy=0;
constraints.gridwidth=4;
constraints.gridheight=1;
constraints.weighty=2;
constraints.fill=GridBagConstraints.BOTH;
constraints.weightx=100;
constraints.weighty=100;
layout.setConstraints(displayField, constraints);
container.add(displayField);
ActionListener insert=new InsertAction();
ActionListener command=new CommandAction();
addButton("Backspace",0,1,2,1,insert); 
addButton("CE",2,1,1,1,insert); 
addButton("C",3,1,1,1,insert); 
addButton("7",0,2,1,1,insert); 
addButton("8",1,2,1,1,insert); 
addButton("9",2,2,1,1,insert); 
addButton("/",3,2,1,1,command); 
addButton("4",0,3,1,1,insert); 
addButton("5",1,3,1,1,insert); 
addButton("6",2,3,1,1,insert); 
addButton("*",3,3,1,1,command); 
addButton("1",0,4,1,1,insert); 
addButton("2",1,4,1,1,insert); 
addButton("3",2,4,1,1,insert); 
addButton("-",3,4,1,1,command); 
addButton("0",0,5,1,1,insert); 
addButton("+/-",1,5,1,1,insert);//只显示"-"号,"+"没有实用价值 
addButton(".",2,5,1,1,insert); 
addButton("+",3,5,1,1,command); 
addButton("=",0,6,4,1,command); 
setSize(300,300); 
setVisible(true); 
}
public void addButton(String label,int row,int column,int width,int height,ActionListener listener){
JButton button=new JButton(label);
constraints.gridx=row;
constraints.gridy=column;
constraints.weightx=width;
constraints.weighty=height;
constraints.fill=GridBagConstraints.BOTH;
button.addActionListener(listener);
layout.setConstraints(button, constraints);
container.add(button);
}
private class InsertAction implements ActionListener{
public void actionPerformed(ActionEvent event){
String input=event.getActionCommand();
if(start){
displayField.setText("");
start=false;
if(input.equals("+/-"))
displayField.setText(displayField.getText()+"-");
}
if(!input.equals("+/-")){
if(input.equals("Backspace")){
String str=displayField.getText();
if(str.length()>0)
displayField.setText(str.substring(0,str.length()-1));
}
else if(input.equals("CE")||input.equals("C")){
displayField.setText("0");
start=true;
}
else displayField.setText(displayField.getText()+input);
}
}
}
public class CommandAction implements ActionListener{
public void actinoPerformed(ActionEvent event){
String command=event.getActionCommand();
if(start)
lastCommand=command;
else
{
calculator(Double.parseDouble(displayField.getText()));
lastCommand=command;
start=true;
}
}
}
public void calculator(double x){
if (lastCommand.equals("+")) result+= x; 
else if (lastCommand.equals("-")) result-=x; 
else if (lastCommand.equals("*")) result*=x; 
else if (lastCommand.equals("/")) result/=x; 
else if (lastCommand.equals("=")) result=x; 
displayField.setText(""+ result); 
}
public static void main(String []args) { 
Calculator calculator=new Calculator(); 
calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} }

解决方案 »

  1.   


    import java.awt.*;
    import java.awt.Container;
    import java.awt.Event.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.*;
    public class Calculator1 extends JFrame {
    private Container container;
    private GridBagLayout layout;
    private GridBagConstraints constraints;
    private JTextField displayField;
    private String lastCommand;
    private double result;
    private boolean start; public Calculator1() {
    super("Calculator1");
    container = this.getContentPane();
    layout = new GridBagLayout();
    constraints = new GridBagConstraints();
    start = true;
    result = 0;
    lastCommand = "=";
    displayField = new JTextField(20);
    displayField.setHorizontalAlignment(JTextField.RIGHT);
    constraints.gridx = 0;
    constraints.gridy = 0;
    constraints.gridwidth = 4;
    constraints.gridheight = 1;
    constraints.weighty = 2;
    constraints.fill = GridBagConstraints.BOTH;
    constraints.weightx = 100;
    constraints.weighty = 100;
    layout.setConstraints(displayField, constraints);
    container.add(displayField);
    ActionListener insert = new InsertAction();
    ActionListener command = new CommandAction();
    addButton("Backspace", 0, 1, 2, 1, insert);
    addButton("CE", 2, 1, 1, 1, insert);
    addButton("C", 3, 1, 1, 1, insert);
    addButton("7", 0, 2, 1, 1, insert);
    addButton("8", 1, 2, 1, 1, insert);
    addButton("9", 2, 2, 1, 1, insert);
    addButton("/", 3, 2, 1, 1, command);
    addButton("4", 0, 3, 1, 1, insert);
    addButton("5", 1, 3, 1, 1, insert);
    addButton("6", 2, 3, 1, 1, insert);
    addButton("*", 3, 3, 1, 1, command);
    addButton("1", 0, 4, 1, 1, insert);
    addButton("2", 1, 4, 1, 1, insert);
    addButton("3", 2, 4, 1, 1, insert);
    addButton("-", 3, 4, 1, 1, command);
    addButton("0", 0, 5, 1, 1, insert);
    addButton("+/-", 1, 5, 1, 1, insert);
    addButton(".", 2, 5, 1, 1, insert);
    addButton("+", 3, 5, 1, 1, command);
    addButton("=", 0, 6, 4, 1, command);
    setSize(300, 300);
    setVisible(true);
    } public void addButton(String label, int row, int column, int width,
    int height, ActionListener listener) {
    JButton button = new JButton(label);
    constraints.gridx = row;
    constraints.gridy = column;
    constraints.weightx = width;
    constraints.weighty = height;
    constraints.fill = GridBagConstraints.BOTH;
    button.addActionListener(listener);
    layout.setConstraints(button, constraints);
    container.add(button);
    } private class InsertAction implements ActionListener {
    public void actionPerformed(ActionEvent event) {
    String input = event.getActionCommand();
    if (start) {
    displayField.setText("");
    start = false;
    if (input.equals("+/-"))
    displayField.setText(displayField.getText() + "-");
    }
    if (!input.equals("+/-")) {
    if (input.equals("Backspace")) {
    String str = displayField.getText();
    if (str.length() > 0)
    displayField
    .setText(str.substring(0, str.length() - 1));
    } else if (input.equals("CE") || input.equals("C")) {
    displayField.setText("0");
    start = true;
    } else
    displayField.setText(displayField.getText() + input);
    }
    }
    } public class CommandAction implements ActionListener { public void actionPerformed(ActionEvent e) {
    String command = e.getActionCommand();
    if (start)
    lastCommand = command;
    else {
    calculator(Double.parseDouble(displayField.getText()));
    lastCommand = command;
    start = true;
    }
    }
    } public void calculator(double x) {
    if (lastCommand.equals("+"))
    result += x;
    else if (lastCommand.equals("-"))
    result -= x;
    else if (lastCommand.equals("*"))
    result *= x;
    else if (lastCommand.equals("/"))
    result /= x;
    else if (lastCommand.equals("="))
    result = x;
    displayField.setText("" + result);
    } public static void main(String[] args) {
    Calculator1 calculator = new Calculator1();
    calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }}
    你自己再看看布局 應該就可以了 ·
      

  2.   

    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;不在前面引入这2句不行 吗?
      

  3.   

    我用Eclipse,有快捷键自动优化导入,我估计JBuilder也应该有啊,对IDE做一些基本了解是开发的效率保证。