编写一个Java小应用程序,设计4个按钮,分别命名为“加”、“差”、“积”、“除”以及3个文本框。

编写一个Java小应用程序,设计4个按钮,分别命名为“加”、“差”、“积”、“除”以及3个文本框。单击相应的按钮,两个文本框的数字做算术运算,在第3个文本框中显示结果。要求处理NumberFormatException。

本题是Java小程序,题来自JAVA 2 实用教程(第二版) 清华大学出版社。
130页 第十章 习题3

急需这道题的完整代码。能运行出结果的!

哈哈 我昨天刚做了这个作业 你够幸运

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.math.*;
public class Homework10_3 {
public static void main(String args[]){
MathWindow win=new MathWindow();
}
}

class MathWindow extends JFrame{
JTextField text1,text2,text3;
JPanel ps,pn;
MathWindow(){
text1=new JTextField(10);
text2=new JTextField(10);
text3=new JTextField(10);
JButton button1,button2,button3,button4;
button1=new JButton("加");
button2=new JButton("减");
button3=new JButton("乘");
button4=new JButton("除");
ps=new JPanel();
pn=new JPanel();
pn.add(text1);
pn.add(text2);
pn.add(text3);
ps.add(button1);
ps.add(button2);
ps.add(button3);
ps.add(button4);
add(pn,BorderLayout.CENTER);
add(ps,BorderLayout.SOUTH);
setBounds(100,100,370,150);
setVisible(true);
validate();
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String s1=text1.getText();
String s2=text2.getText();
try{ BigInteger n1=new BigInteger(s1);
BigInteger n2=new BigInteger(s2);
n2=n1.add(n2);
text3.setText(n2.toString());
}
catch(NumberFormatException ee){
text3.setText("请输入数字字符");
text1.setText(null);
text2.setText(null);
}
}
});
button2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String s1=text1.getText();
String s2=text2.getText();
try{ BigInteger n1=new BigInteger(s1);
BigInteger n2=new BigInteger(s2);
n2=n1.subtract(n2);
text3.setText(n2.toString());
}
catch(NumberFormatException ee){
text3.setText("请输入数字字符");
text1.setText(null);
text2.setText(null);
}
}
});
button3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String s1=text1.getText();
String s2=text2.getText();
try{ BigInteger n1=new BigInteger(s1);
BigInteger n2=new BigInteger(s2);
n2=n1.multiply(n2);
text3.setText(n2.toString());
}
catch(NumberFormatException ee){
text3.setText("请输入数字字符");
text1.setText(null);
text2.setText(null);
}
}
});
button4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String s1=text1.getText();
String s2=text2.getText();
try{ BigInteger n1=new BigInteger(s1);
BigInteger n2=new BigInteger(s2);
if(n2.toString()=="0"){
text3.setText("除数不能为0");
}
else
{
n2=n1.divide(n2);
text3.setText(n2.toString());
}
}
catch(NumberFormatException ee){
text3.setText("请输入数字字符");
text1.setText(null);
text2.setText(null);
}
}
});
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-09
import java.awt.BorderLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.awt.event.*;
public class MyComputer implements ActionListener{
private boolean append = false;//append表示数字状态(追加/替换)
JTextField jtf = new JTextField(10);
private String op1 = "0";
private String operator = "+";
public void actionPerformed(ActionEvent ae){
String comm = ae.getActionCommand();
//if("0".equals(comm)||"1".equals(comm))
//if(comm.matches("^\\d+$"))
if("0123456789".indexOf(comm)!=-1){
if(append){//追加
String temp = jtf.getText();
jtf.setText(temp+comm);
}else{//替换
jtf.setText(comm);
append = true;
}
}else if("+-*/".indexOf(comm)!=-1){
op1 = jtf.getText();
operator = comm;
append = false;
}else if("=".equals(comm)){
String op2 = jtf.getText();
double d1 = Double.parseDouble(op1);
double d2 = Double.parseDouble(op2);
if("+".equals(operator)){
d1 = d1 + d2;
}else if("-".equals(operator)){
d1 = d1 - d2;
}else if("*".equals(operator)){
d1 = d1 * d2;
}else{
d1 = d1 / d2;
}
jtf.setText(d1+"");
append = false;
}else if(".".equals(comm)){
String temp = jtf.getText();
if(temp.indexOf(".")==-1){//没有小数点
jtf.setText(temp+".");
append = true;
}
}else if("+/-".equals(comm)){
String temp = jtf.getText();
if(temp.startsWith("-")){
jtf.setText(temp.substring(1));
}else{
jtf.setText("-"+temp);
}
}else if("BackS".equals(comm)){
String temp = jtf.getText();
if(temp.length()>0){
jtf.setText(temp.substring(0,temp.length()-1));
}
}else if("CE".equals(comm)||"C".equals(comm)){
jtf.setText("0");
append = false;
}
}
public MyComputer(){
JFrame jf = new JFrame("MyComputer");
jf.add(jtf,BorderLayout.NORTH);
JPanel jp = new JPanel();
GridLayout gl = new GridLayout(5,4);
String[] lab = {"BackS","CE","C","+",
"7","8","9","-","4","5","6","*",
"1","2","3","/","0","+/-",".","="};
jp.setLayout(gl);
for(int i=0;i<lab.length;i++){
JButton jb = new JButton(lab[i]);
jp.add(jb);
jb.addActionListener(this);
}
jtf.setEditable(false);//设置文本框不可编辑
jf.add(jp);
jf.setLocation(300,200);//设置出现位置
//jf.setSize(300,200);//设置大小
jf.pack();//自动调整窗口大小
jf.setResizable(false);//设置窗口大小不可改变
jf.setVisible(true);//设置可见
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MyComputer();
}
}
相似回答