import java.awt.*;
import java.awt.event.*;
class Computer extends Frame {
Panel b=new Panel();
Panel h=new Panel();
TextField t=new TextField("",30);
private String name[]={"0","1","2","3","4","5","6","7","8","9","+","-","*","/","=","CE"};
private Button button[]=new Button[name.length];
public Computer(){
b.setLayout(new GridLayout(4,3,3,3));
for (int i=0;i<name.length;i++){
button[i]=new Button(name[i]);
b.add(name[i],button[i]);
}
Frame f=new Frame("计算器");
f.setLayout(new GridLayout(2,1));
h.add(t);
f.add(h);
f.add(b);
f.pack();
f.setVisible(true);
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public static void main(String []args){
Computer m=new Computer();
}
}
我写了个关于计算器的程序.可是要怎么添加监听就可以把键盘的数字输入到文本框里????
解决方案 »
- 帮忙看看 这个程序哪有问题 谢谢
- JAVA的package问题?
- 高分请教一个过滤器设置的问题?急,急,急,急!
- jsf中这样的代码正确吗?#{userBean.user.name}
- soket 接收数据问题
- 帮我看看这段代码为什么in=getClass().getResourceAsStream(strFileName);后in还是=null?
- 那儿有java 可下
- 我在IE启动下启动WORD,怎么样控制WORD的初始页面格式为A4或者A3呢??
- 请问我如何知道一个线程是否阻塞了(任何原因)
- 高手请进指点:
- 写在JPanel中的button怎么使JFrame刷新。
- 我编写了一个弱智级小程序.请前辈们帮我看一下!
import java.awt.event.*;
public class My_Cal
{
public static void main(String arg[])
{
My_Frame1 mc1=new My_Frame1();
mc1.addWindowListener(new WindowAdapter()
{public void windowClosing(WindowEvent e){System.exit(0);}});
}
}
class My_Frame1 extends Frame
{
static String a=new String("");
static String b=new String("");
static String c=new String("");
Panel p1=new Panel();
TextField t1=new TextField("",20);
// b1.setLabel("adf");
Button b1[]=new Button[10];
Button b2[]={new Button("+"),new Button("-"),new Button("*"),new Button("/"),new Button("=")};
Menu menu1=new Menu("编辑");
Menu menu2=new Menu("设置");
Menu menu3=new Menu("帮助");
MenuBar mb1=new MenuBar();
MenuItem mi11=new MenuItem("复制");
MenuItem mi12=new MenuItem("粘贴");
MenuItem mi21=new MenuItem("color");
MenuItem mi31=new MenuItem("帮助主题");
MenuItem mi32=new MenuItem("关于");
My_Frame1()
{
mb1.add(menu1);
mb1.add(menu2);
mb1.add(menu3);
menu1.add(mi11);
menu1.add(mi12);
menu2.add(mi21);
menu3.add(mi31);
menu3.add(mi32);
this.setTitle("我的计算器");
this.setLayout(new BorderLayout());
p1.setLayout(new GridLayout(4,4,5,5));
for(int j=0;j<4;j++)
{
p1.add(b2[j]);
b2[j].addActionListener(new A_mycal());
}
for(int i=0;i<10;i++)
{
b1[i]=new Button(" "+i);
p1.add(b1[i]);
b1[i].addActionListener(new A_mycal());
}
p1.add(b2[4]);
b2[4].addActionListener(new A_mycal());
// b1[1].setBounds(10,10,40,25);
this.setMenuBar(mb1);
this.add(t1,BorderLayout.NORTH);
this.add(p1,BorderLayout.CENTER);
this.setBounds(350,300,200,200);
this.setResizable(false);
this.setVisible(true);
}
class A_mycal implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
Object o1=e.getSource();
for(int i=0;i<10;i++)
if(o1==b1[i])
{
// a=a+b1[i].getLabel();
a=a+i;
t1.setText(a);
break;
}
for(int j=0;j<4;j++)
if(o1==b2[j])
{
t1.setText("");
b=a;
a="";
c=b2[j].getLabel();
break;
}
if(o1==b2[4])
{ if(a.equals(""))
a="0";
if(b.equals(""))
b="0";
if(c.equals("+"))
{
int r=Integer.parseInt(b)+Integer.parseInt(a);
t1.setText(""+r);
a="";
b="";
}
if(c.equals("-"))
{int r=Integer.parseInt(b)-Integer.parseInt(a);
t1.setText(""+r);
a="";
b="";}
if(c.equals("*"))
{int r=Integer.parseInt(b)*Integer.parseInt(a);
t1.setText(""+r);
a="";
b="";}
if(c.equals("/"))
{if(a.equals("0"))
t1.setText("分母不能为0");
else
{
int r=Integer.parseInt(b)/Integer.parseInt(a);
t1.setText(""+r);
}
a="";
b="";
}
}
}
}
}
说明一下,display是JTextField类型的文本框 public void actionPerformed(ActionEvent evt){
String s=evt.getActionCommand();
if('0'<=s.charAt(0)&&s.charAt(0)<='9'||s.equals(".")){
if(start) display.setText(s);
else display.setText(display.getText()+s);
start=false;
}
else{
if(start){
if(s.equals("-")){
display.setText(s);
start=false;
}
else op=s;
}
else{
double x=Double.parseDouble(display.getText());
calculate(x);
op=s;
start=true;
}
}
}
public void calculate(double n){
if(op.equals("+")) arg +=n;
else if(op.equals("-")) arg -=n;
else if(op.equals("*")) arg *=n;
else if(op.equals("/")) arg /=n;
else if(op.equals("=")) arg =n;
display.setText(""+arg);
class CalculatorPanel extends JPanel implements ActionListener
implements一下你所需要的接口