关于计算器的问题 我想编一个简单的计算器,但不太会处理键盘输入问题.哪位能贴个代码出来,感激不尽 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //Calculator.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;class CalculatorPanel extends JPanel implements ActionListener{ public CalculatorPanel() { setLayout(new BorderLayout()); display=new JTextField("0"); display.setEditable(false); add(display,"North"); JPanel p=new JPanel(); p.setLayout(new GridLayout(4,4)); String buttons="789/456*123-0.=+"; for(int i=0;i<buttons.length();i++) addButton(p,buttons.substring(i,i+1)); add(p,"Center"); } private void addButton(Container c,String s) { JButton b=new JButton(s); c.add(b); b.addActionListener(this); } 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); } private JTextField display; private double arg=0; private String op="="; private boolean start=true;}class CalculatorFrame extends JFrame{ public CalculatorFrame() { setTitle("Calculator"); setSize(200,200); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } } ); Container contentPane=getContentPane(); contentPane.add(new CalculatorPanel()); }}public class Calculator{ public static void main(String[] args) { JFrame frame=new CalculatorFrame(); frame.show(); }} readObject问题?? 函数构造是什么?? 怎么用java mail disposition-notification;邮件? 浏览文件例子(高手请进.) core java第一卷看完了,还有什么好书? 如何转化数据 如何监听下拉列表实现显示不同的按钮 请问classpath设置..*.jar,如果是文件夹怎么办啊 我是JAVA初学者,如何用JBUILDER的DATABASE PILOT连接ORACLE的数据库 我是初学者,请大侠帮忙 小弟要毕业的矛盾,请大家给点见意我 这个语句又是什么意思呢,请高手朋友指点
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class CalculatorPanel extends JPanel
implements ActionListener
{
public CalculatorPanel()
{
setLayout(new BorderLayout());
display=new JTextField("0");
display.setEditable(false);
add(display,"North");
JPanel p=new JPanel();
p.setLayout(new GridLayout(4,4));
String buttons="789/456*123-0.=+";
for(int i=0;i<buttons.length();i++)
addButton(p,buttons.substring(i,i+1));
add(p,"Center");
}
private void addButton(Container c,String s)
{
JButton b=new JButton(s);
c.add(b);
b.addActionListener(this);
}
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);
}
private JTextField display;
private double arg=0;
private String op="=";
private boolean start=true;
}
class CalculatorFrame extends JFrame
{
public CalculatorFrame()
{
setTitle("Calculator");
setSize(200,200);
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );
Container contentPane=getContentPane();
contentPane.add(new CalculatorPanel());
}
}
public class Calculator
{
public static void main(String[] args)
{
JFrame frame=new CalculatorFrame();
frame.show();
}
}