| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 700 人关注过本帖
标题:请大家帮我看看这个"计算器"错在哪啊,谢谢啦
只看楼主 加入收藏
fengwei15520
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-3-6
收藏
 问题点数:0 回复次数:3 
请大家帮我看看这个"计算器"错在哪啊,谢谢啦
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
public class JPanelDemo extends JFrame implements ActionListener {
  private JPanel DisplayPanel;
  private JPanel InputPanel;
  private Container container;
  int x,y;
  int z;
  StringBuffer str;
  private JTextField tfResult;
  private JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15;
  private static final String Lables="789*456/123-0C=+";
  public JPanelDemo(){
   super("计算器");
   setSize(200,230);
   this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   tfResult=new JTextField("27");
   tfResult.setHorizontalAlignment(JTextField.RIGHT);
   tfResult.setEnabled(false);
   tfResult.setText("0");
   b0=new JButton("7");
   b0.addActionListener(this);
   b1=new JButton("8");
   b1.addActionListener(this);
   b2=new JButton("9");
   b2.addActionListener(this);
   b3=new JButton("*");
   b3.addActionListener(this);
   b4=new JButton("4");
   b4.addActionListener(this);
   b5=new JButton("5");
   b5.addActionListener(this);
   b6=new JButton("6");
   b6.addActionListener(this);
   b7=new JButton("/");
   b7.addActionListener(this);
   b8=new JButton("1");
   b8.addActionListener(this);
   b9=new JButton("2");
   b9.addActionListener(this);
   b10=new JButton("3");
   b10.addActionListener(this);
   b11=new JButton("-");
   b11.addActionListener(this);
   b12=new JButton("0");
   b12.addActionListener(this);
   b13=new JButton("c");
   b13.addActionListener(this);
   b14=new JButton("=");
   b14.addActionListener(this);
   b15=new JButton("+");
   b15.addActionListener(this);
   str=new StringBuffer();
 }

 public void setLayout(){
  container=getContentPane();
  container.setLayout(new BorderLayout());
  DisplayPanel=new JPanel();
  DisplayPanel.setLayout(new BorderLayout());
  tfResult=new JTextField();
  DisplayPanel.add(tfResult,BorderLayout.CENTER);
  container.add(DisplayPanel,BorderLayout.NORTH);
  InputPanel=new JPanel();
  InputPanel.setLayout(new GridLayout(4,4));
  for(int i=0;i<Lables.length();i++){
    JButton btn=new JButton(Lables.substring(i,i+1));
    InputPanel.add(btn);
 }
  container.add(InputPanel,BorderLayout.CENTER);
 }
  public static void main(String []args){
   JPanelDemo TestPanel=new JPanelDemo();
   TestPanel.setLayout();
   TestPanel.show();
 }
  public void actionPerformed(ActionEvent e2){
     try{

if(e2.getSource()==b13)
{
tfResult.setText("0");
str.setLength(0);
}
else if(e2.getSource()==b15)
{
x=Integer.parseInt(tfResult.getText().trim());
str.setLength(0);
y=0;
z=0;
}
else if(e2.getSource()==b11)
{
x=Integer.parseInt(tfResult.getText().trim());
str.setLength(0);
y=0;
z=1;
}
else if(e2.getSource()==b3)
{
x=Integer.parseInt(tfResult.getText().trim());
str.setLength(0);
y=0;
z=2;
}
else if(e2.getSource()==b7)
{
x=Integer.parseInt(tfResult.getText().trim());
str.setLength(0);
y=0;
z=3;
}
else if(e2.getSource()==b14)
{
str.setLength(0);
switch(z)
{
case 0 : tfResult.setText(""+(x+y));break;
case 1 : tfResult.setText(""+(x-y));break;
case 2 : tfResult.setText(""+(x*y));break;
case 3 : tfResult.setText(""+(x/y));break;
}
 }
 else
{
tfResult.setText(str.append(e2.getActionCommand()).toString());
y=Integer.parseInt(tfResult.getText().trim());
}
 }
 catch(NumberFormatException e){
tfResult.setText("数字格式异常");
}
  }
 }
}
搜索更多相关主题的帖子: 计算器 
2008-03-13 22:51
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我也被你骗了..你的按钮监听不对应..在构造函数里面和布局里面生成了两组按钮
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.event.ActionEvent;
public class JPanelDemo extends JFrame implements ActionListener {
  private JPanel DisplayPanel;
  private JPanel InputPanel;
  private Container container;
  int x,y;
  int z;
  StringBuffer str;
  private JTextField tfResult;
   public JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15;
  private static final String Lables="789*456/123-0C=+";
  public JPanelDemo(){
   super("计算器");
   
   setSize(200,230);
   
   this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   
   tfResult=new JTextField("27");
   tfResult.setHorizontalAlignment(JTextField.RIGHT);
   tfResult.setEnabled(false);
   tfResult.setText("0");
   
   container=getContentPane();
   container.setLayout(new BorderLayout());
   
   DisplayPanel=new JPanel();
   DisplayPanel.setLayout(new BorderLayout());
   
   tfResult=new JTextField();
   
   DisplayPanel.add(tfResult,BorderLayout.CENTER);
   
   container.add(DisplayPanel,BorderLayout.NORTH);
   
   InputPanel=new JPanel();
   InputPanel.setLayout(new GridLayout(4,4));
  
   
   b0=new JButton("7");
   InputPanel.add(b0);
   b0.addActionListener(this);
   
   b1=new JButton("8");
   InputPanel.add(b1);
   b1.addActionListener(this);
   
   b2=new JButton("9");
   InputPanel.add(b2);
   b2.addActionListener(this);
   
   b3=new JButton("*");
   InputPanel.add(b3);
   b3.addActionListener(this);
   
   b4=new JButton("4");
   InputPanel.add(b4);
   b4.addActionListener(this);
   
   b5=new JButton("5");
   InputPanel.add(b5);
   b5.addActionListener(this);
   
   b6=new JButton("6");
   InputPanel.add(b6);
   b6.addActionListener(this);
   
   b7=new JButton("/");
   InputPanel.add(b7);
   b7.addActionListener(this);
   
   b8=new JButton("1");
   InputPanel.add(b8);
   b8.addActionListener(this);
   
   b9=new JButton("2");
   InputPanel.add(b9);
   b9.addActionListener(this);
   
   b10=new JButton("3");
   InputPanel.add(b10);
   b10.addActionListener(this);
   
   b11=new JButton("-");
   InputPanel.add(b11);
   b11.addActionListener(this);
   
   b12=new JButton("0");
   InputPanel.add(b12);
   b12.addActionListener(this);
   
   b13=new JButton("c");
   InputPanel.add(b13);
   b13.addActionListener(this);
   
   b14=new JButton("=");
   InputPanel.add(b14);
   b14.addActionListener(this);
   
   b15=new JButton("+");
   InputPanel.add(b15);
   b15.addActionListener(this);
   
   str=new StringBuffer();
   
  container.add(InputPanel,BorderLayout.CENTER);
}


  
 public void actionPerformed(ActionEvent e2) {
     try{

if(e2.getSource()==b13)
{
tfResult.setText("0");
System.out.print("你点了0");
str.setLength(3);
}
else if(e2.getSource()==b15)
{
x=Integer.parseInt(tfResult.getText().trim());
str.setLength(0);
y=0;
z=0;
}
else if(e2.getSource()==b11)
{
x=Integer.parseInt(tfResult.getText().trim());
str.setLength(0);
y=0;
z=1;
}
else if(e2.getSource()==b3)
{
x=Integer.parseInt(tfResult.getText().trim());
str.setLength(0);
y=0;
z=2;
}
else if(e2.getSource()==b7)
{
x=Integer.parseInt(tfResult.getText().trim());
str.setLength(0);
y=0;
z=3;
}
else if(e2.getSource()==b14)
{
str.setLength(0);
switch(z)
{
case 0 : tfResult.setText(""+(x+y));break;
case 1 : tfResult.setText(""+(x-y));break;
case 2 : tfResult.setText(""+(x*y));break;
case 3 : tfResult.setText(""+(x/y));break;
}
}
else
{
tfResult.setText(str.append(e2.getActionCommand()).toString());
y=Integer.parseInt(tfResult.getText().trim());
}
}
catch(NumberFormatException e){
tfResult.setText("数字格式异常");
}
  }
  public static void main(String []args){
   JPanelDemo TestPanel=new JPanelDemo();
  // TestPanel.setLayout();
   TestPanel.show();
}
}
我帮你改了

学习需要安静。。海盗要重新来过。。
2008-03-14 11:26
fengwei15520
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2008-3-6
收藏
得分:0 
太谢谢你了
我是一个刚起步的新手,希望你能够多帮助我,谢谢了
2008-03-16 19:51
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
一起学习啊...一起进步..做上论坛吧...

学习需要安静。。海盗要重新来过。。
2008-03-16 19:54
快速回复:请大家帮我看看这个"计算器"错在哪啊,谢谢啦
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016127 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved