永发信息网

简单的java计算器窗体程序

答案:1  悬赏:10  手机版
解决时间 2021-08-01 14:07
  • 提问者网友:蔚蓝的太阳
  • 2021-08-01 11:05

import java.awt.*;
import java.awt.event.*;
class MyWindow extends Frame implements ActionListener
{ Button b[]=new Button[10];//new 0至9的按钮
Button button01,button02,button03,button04;
TextField text1;
int x,y,i;
MyWindow(String s)
{
super(s);
button01=new Button("加");
button02=new Button("减");
button03=new Button("乘");
button04=new Button("除");
text1=new TextField(12);
setLayout(new FlowLayout());
add(text1);
for(i=0;i<10;i++)
{b[i]=new Button(Integer.toString(i));
b[i].addActionListener(this);
add(b[i]);
}//生成0至9的按钮
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
add(button01);
add(button02);
add(button03);
add(button04);
//button01.addActionListener;
//button02.addActionListener;
//button03.addActionListener;
//button04.addActionListener;
setBounds(100,100,250,300);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b[i])
{
text1.setText(b[i].getLabel());
}
}


}
public class JiShuangQi03
{

public static void main(String args[])
{new MyWindow("计算器");
}

}

我运行后为什么我单击0至9的按钮 文本框中不显示数字

不会告诉我0至9的按钮要一个一个new Button()才可以用吧

最佳答案
  • 五星知识达人网友:过活
  • 2021-08-01 12:19

你这个会抛出数组越界错误,你下面的b[i]的i下标示全局的变量,到actionPerformed中时候,讲等于10


你可以把这个方法改成


public void actionPerformed(ActionEvent e) {
if(e.getSource()!=null){


Button btn = (Button)e.getSource();
if(btn!=null){
text1.setText(btn.getLabel());
}
}

}


这样试试

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯