这是我写得一个计算器的程序,用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);
} }
具体错误信息是: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);
} }
解决方案 »
- 执行完查询之后是否需要显式调用PreparedStatement对象和ResultSet对象的close()方法?
- java并行发送http请求的方法
- 问个新人、问题for循环求20!+19!+。。。。。+1!
- [求助] Component类里的createImage(int w, int h) 怎么理解?
- Map-->TreeSet,急!!!小弟跪求答案~~~。
- 一个关于内存溢出的问题。请大家帮忙解决!
- 公交查询系统的算法
- NUllpointerException 错误
- 如何在JAVA中使用包?
- 我想用FileWriter,FileReader实现读写文件,遇到问题.
- 急,麻烦各位解决这个问题!
- 想的头晕不知所以然"abc".equals(s)和s.equals("abc")有区别吗
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);
}}
你自己再看看布局 應該就可以了 ·
import java.awt.event.ActionListener;不在前面引入这2句不行 吗?