参考一下
import java.awt.*;
import java.awt.event.*;public class Eee{ //Java Application的主类
public static void main(String[] args) {
MainFrame MyFrame = new MainFrame();
MyFrame.setSize(400,300);
MyFrame.setLocation(200,150);
}
}class MainFrame extends Frame implements ActionListener{
Label result;
Button button;
MainFrame(){
super("Eee.1.0");
this.setLayout(new FlowLayout());
addWindowListener(new closeWin());//窗口事件注册,使closeWin监听处理窗口事?
button=new Button("按钮");
button.addActionListener(this);
result=new Label(" ");
add(result);add(button);
show();
}
public void actionPerformed (ActionEvent e){
String str=e.getActionCommand();
result.setText(str);
if (str.equals("C")) //这两句
result.setText(str); //不要也罢
}}class closeWin extends WindowAdapter{ //创建窗口剪裁类的子类,处理窗口关闭事件
public void windowClosing(WindowEvent e){
Frame frm=(Frame)(e.getSource());
frm.dispose();
System.exit(0);
}
}
import java.awt.*;
import java.awt.event.*;public class Eee{ //Java Application的主类
public static void main(String[] args) {
MainFrame MyFrame = new MainFrame();
MyFrame.setSize(400,300);
MyFrame.setLocation(200,150);
}
}class MainFrame extends Frame implements ActionListener{
Label result;
Button button;
MainFrame(){
super("Eee.1.0");
this.setLayout(new FlowLayout());
addWindowListener(new closeWin());//窗口事件注册,使closeWin监听处理窗口事?
button=new Button("按钮");
button.addActionListener(this);
result=new Label(" ");
add(result);add(button);
show();
}
public void actionPerformed (ActionEvent e){
String str=e.getActionCommand();
result.setText(str);
if (str.equals("C")) //这两句
result.setText(str); //不要也罢
}}class closeWin extends WindowAdapter{ //创建窗口剪裁类的子类,处理窗口关闭事件
public void windowClosing(WindowEvent e){
Frame frm=(Frame)(e.getSource());
frm.dispose();
System.exit(0);
}
}
Button button1,button2,button3;
button1=new Button("按钮1");
button1=new Button("按钮2");
button1=new Button("按钮3");
......................
public void actionPerformed (ActionEvent e){
if(e.getActionCommand=="按钮1")
..........
else if (e.getActionCommand=="按钮2")
..........
else if(e.getActionCommand=="按钮3")
..........
}
java.lang.NumberFormatException: For input string: "C"
at java.lang.NumberFormatException.forInputString(NumberFormatException.
java:48)
at java.lang.Integer.parseInt(Integer.java:426)
at java.lang.Integer.valueOf(Integer.java:532)
at AwtCalc.actionPerformed(AwtCalc.java:117)
at java.awt.Button.processActionEvent(Button.java:381)
at java.awt.Button.processEvent(Button.java:350)
at java.awt.Component.dispatchEventImpl(Component.java:3598)
at java.awt.Component.dispatchEvent(Component.java:3439)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:197)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136) at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
import java.awt.event.*;
import java.awt.Graphics;public class AwtCalc extends Frame implements ActionListener
{ private Button[] buttons=new Button[20];
private String[] buttonText={"1","2","3","+","-","4","5","6","*",
"/","7","8","9","^","sqrt","C","0",".","%","="};
private EtextField result; //结果显示框
private Label label;
private Color forecolor,backcolor,fieldcolor;
private Font font ,buttonfont;
int operation,LastButtonType;
int OnScreen,OutOfScreen; public AwtCalc(){
super("计算器");
setBackground(Color.lightGray);
setSize(270,200);
font=new Font("Courier",font.ITALIC,12);
buttonfont=new Font("Courier",font.PLAIN,12);
result=new EtextField(125,18);
label=new Label ("The Result");
setLayout(new FlowLayout());
//初始化按钮
Panel mainpanel=new Panel();
mainpanel.setLayout(new GridLayout(5,1));
for( int i=0;i<20;i++)
{
buttons[i]=new Button (buttonText[i]);
buttons[i].setFont(buttonfont);
buttons[i].addActionListener(this);
}
Panel panel1=new Panel();
panel1.add(result);
panel1.add(label);
mainpanel.add(panel1);
Panel panel2=new Panel();
panel2.setLayout(new GridLayout(1,5,5,5));
panel2.add(buttons[0]);
panel2.add(buttons[1]);
panel2.add(buttons[2]);
panel2.add(new Label(" "));
panel2.add(buttons[3]);
panel2.add(buttons[4]);
mainpanel.add(panel2);
Panel panel3=new Panel();
panel3.setLayout(new GridLayout(1,5,5,5));
panel3.add(buttons[5]);
panel3.add(buttons[6]);
panel3.add(buttons[7]);
panel3.add(new Label(" "));
panel3.add(buttons[8]);
panel3.add(buttons[9]);
mainpanel.add(panel3);
Panel panel4=new Panel();
panel4.setLayout(new GridLayout(1,5,5,5));
panel4.add(buttons[10]);
panel4.add(buttons[11]);
panel4.add(buttons[12]);
panel4.add(new Label(" "));
panel4.add(buttons[13]);
panel4.add(buttons[14]);
mainpanel.add(panel4);
Panel panel5=new Panel();
panel5.setLayout(new GridLayout(1,5,5,5));
// panel5.setLayout(new FlowLayout(FlowLayout.CENTER,2,2));
// panel5.reshape(100,55,160,130);
panel5.add(buttons[15]);
panel5.add(buttons[16]);
panel5.add(buttons[17]);
panel5.add(new Label(" "));
panel5.add(buttons[18]);
panel5.add(buttons[19]);
mainpanel.add(panel5);
add("Center",mainpanel);
buttons[15].setForeground(Color.red);
result.setBackground(Color.white);
show();
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void actionPerformed (ActionEvent e){
String str=e.getActionCommand();
if (str.equals("C"))
// result.setText(str);
resetCalc();
if (str.equals("+"))
setoperation(1);
if (str.equals("-"))
setoperation(2);
if (str.equals("*"))
setoperation(3);
if(str.equals("/"))
setoperation(4);
if(str.equals("="))
doOperation();
else {
if(LastButtonType==0)
OnScreen=OnScreen*10+Integer.valueOf(str).intValue();
else
OnScreen= Integer.valueOf(str).intValue();
}
result.setText(String.valueOf(OnScreen));
}
public void resetCalc(){
LastButtonType=0;
OnScreen=0;
operation=0;
OutOfScreen=0;
}
public void setoperation(int op)
{
operation=op;
LastButtonType=op;
OutOfScreen=OnScreen;
}
public void doOperation()
{
int temp=0;
switch (operation)
{
case 1:
temp=OnScreen+OutOfScreen;
break;
case 2:
temp=OnScreen-OutOfScreen;
break;
case 3:
temp=OnScreen*OutOfScreen;
break;
case 4:
temp=OnScreen/OutOfScreen;
break;
}
OutOfScreen=OnScreen;
OnScreen=temp;
}
public void paint(Graphics g)
{
g.drawRect(0,0,getSize().width-1,getSize().height-1);
g.drawLine(0,0,0,getSize().height);
}
public static void main(String[] args){
AwtCalc ca=new AwtCalc();
}
}
不好意思, 代码有点多
下面是一个显示结果的类:
import java.awt.*;public class EtextField extends Canvas{
String message="0";
int x;
boolean firstTime=true;
public EtextField (int width,int height){
setSize(width,height);
}
public void setText(String text)
{
firstTime=false;
message=text;
x+=3;
repaint();
}
public void paint(Graphics g){
g.drawRect(0,0,getSize().width-1,getSize().height-1);
g.drawString(message,3,13);
}
}
public void actionPerformed (ActionEvent e){
String str=e.getActionCommand();
if (str.equals("C"))
resetCalc();
else if (str.equals("+"))
setoperation(1);
else if (str.equals("-"))
setoperation(2);
else if (str.equals("*"))
setoperation(3);
else if(str.equals("/"))
setoperation(4);
else if(str.equals("="))
doOperation();
else{
if(LastButtonType==0)
OnScreen=OnScreen*10+Integer.valueOf(str).intValue();
else
OnScreen= Integer.valueOf(str).intValue();
}
result.setText(String.valueOf(OnScreen));
}
原因嘛,自己想一下!