for(intj=0;j<9;j++){
if(aa[i]!
=bb[j])
System.out.println("输入错误!
!
!
");
break;}
}
}
}
}
}
publicclassText101{
publicstaticvoidmain(Stringargs[]){
newJComboBoxText("计算器");
}
}
4、实验结果
五、讨论与结论
此部分知识需要自学,陌生的内容比较多,因此首先要克服畏惧心理。
静下心看书握好基础知识的基础上仿照书上例题编写即可。
整个程序的大致框架参考了书中的带下拉框的例题,但还是有许多细节需要独立思考。
实验二:
简单计算器的设计
一、实验目的及要求
编写简易计算器,能够进行小数的加减乘除。
在出错时,如输入的不是有效值,设计弹出对话框给出相应提示。
二、所用仪器、设备
计算机(安装有Eclipse系统)
三、实验内容
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
publicclassCalculateextendsJFrame{
//privatestaticfinalColor=null;
privateStringfront="",behind="";//分别用于记录加减乘除运算符之前,之后输入的内容
privateStringop;//用于记录运算符
privateStringre;//用于存储运算结果的字符串格式
privatebooleanflag=false;//用于记录是否按下了运算符
privatebooleanflagpoint=false;//用于判断是否输入了点运算符
privatedoubleresult;//用于存储运算结果
privatebooleanflagnumber=false;//用于判断是否输入了数字
privatebooleanflagequal=false;//用于判断是否按下了等号运算符
JPanelcontentPane;
JTextFieldtxtResult=newJTextField("0");
JButtonbtnNull=newJButton("sqrt");
JButtonbtnFour=newJButton("4");
JButtonbtnFive=newJButton("5");
JButtonbtnSix=newJButton("6");
JButtonbtnDecrease=newJButton("-");
JButtonbtnBegin=newJButton("C");
JButtonbtnOne=newJButton("1");
JButtonbtnTwo=newJButton("2");
JButtonbtnThree=newJButton("3");
JButtonbtnMultiply=newJButton("*");
JButtonbtnCancel=newJButton("back");
JButtonbtnZero=newJButton("0");
JButtonbtnMinus=newJButton("+/-");
JButtonbtnPoint=newJButton(".");
JButtonbtnDivide=newJButton("/");
JButtonbtnEqual=newJButton("=");
JButtonbtnIncrease=newJButton("+");
JButtonbtnSeven=newJButton("7");
JButtonbtnEight=newJButton("8");
JButtonbtnNine=newJButton("9");
publicCalculate(){
try{
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
}catch(Exceptionexception){
exception.printStackTrace();
}
}
privatevoidjbInit()throwsException{
contentPane=(JPanel)getContentPane();
contentPane.setLayout(null);
this.setResizable(false);
setSize(newDimension(400,300));
setTitle("计算器");
txtResult.setEnabled(false);
txtResult.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
txtResult.setEditable(false);
txtResult.setHorizontalAlignment(SwingConstants.RIGHT);
txtResult.setBounds(newRectangle(33,19,310,34));
btnBegin.setBounds(newRectangle(298,70,46,37));
btnBegin.setFont(newjava.awt.Font("Dialog",Font.PLAIN,12));
btnSeven.setBounds(newRectangle(33,70,46,37));
btnSeven.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnEight.setBounds(newRectangle(101,70,46,37));
btnEight.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnNine.setBounds(newRectangle(167,70,46,37));
btnNine.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnFour.setBounds(newRectangle(33,120,46,37));
btnFour.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnFive.setBounds(newRectangle(101,120,46,37));
btnFive.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnSix.setBounds(newRectangle(167,119,46,37));
btnSix.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnDecrease.setBounds(newRectangle(234,120,46,37));
btnDecrease.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnCancel.setBounds(newRectangle(298,121,46,37));
btnCancel.setFont(newjava.awt.Font("Dialog",Font.PLAIN,15));
btnOne.setBounds(newRectangle(33,172,46,37));
btnOne.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnTwo.setBounds(newRectangle(101,172,46,37));
btnTwo.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnThree.setBounds(newRectangle(167,172,46,37));
btnThree.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnMultiply.setBounds(newRectangle(234,172,46,37));
btnMultiply.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnZero.setBounds(newRectangle(33,222,46,37));
btnZero.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnMinus.setBounds(newRectangle(101,222,46,37));
btnMinus.setFont(newjava.awt.Font("Dialog",Font.PLAIN,10));
btnPoint.setBounds(newRectangle(167,222,46,37));
btnPoint.setFont(newjava.awt.Font("Dialog",Font.PLAIN,30));
btnPoint.setHorizontalTextPosition(SwingConstants.CENTER);
btnDivide.setBounds(newRectangle(234,222,46,37));
btnDivide.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnEqual.setBackground(Color.RED);
btnEqual.setBounds(newRectangle(298,172,46,86));
btnEqual.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
btnIncrease.setBounds(newRectangle(234,70,46,37));
btnIncrease.setFont(newjava.awt.Font("Dialog",Font.PLAIN,20));
//加载监听事件
btnZero.addActionListener(newCalculate_btnZero_actionAdapter(this));
btnOne.addActionListener(newCalculate_btnZero_actionAdapter(this));
btnTwo.addActionListener(newCalculate_btnZero_actionAdapter(this));
btnThree.addActionListener(newCalculate_btnZero_actionAdapter(this));
btnFour.addActionListener(newCalculate_btnZero_actionAdapter(this));
btnFive.addActionListener(newCalculate_btnZero_actionAdapter(this));
btnSix.addActionListener(newCalculate_btnZero_actionAdapter(this));
btnSeven.addActionListener(newCalculate_btnZero_actionAdapter(this));
btnEight.addActionListener(newCalculate_btnZero_actionAdapter(this));
btnNine.addActionListener(newCalculate_btnZero_actionAdapter(this));
btnCancel.addActionListener(newCalculate_btnCancel_actionAdapter(this));
btnMinus.addActionListener(newCalculate_btnMinus_actionAdapter(this));
btnPoint.addActionListener(newCalculate_btnPoint_actionAdapter(this));
btnEqual.addActionListener(newCalculate_btnEqual_actionAdapter(this));
btnBegin.addActionListener(newCalculate_btnBegin_actionAdapter(this));
btnIncrease.addActionListener(new
Calculate_btnIncrease_actionAdapter(this));
btnDecrease.addActionListener(new
Calculate_btnIncrease_actionAdapter(this));
btnMultiply.addActionListener(new
Calculate_btnIncrease_actionAdapter(this));
btnDivide.addActionListener(new
Calculate_btnIncrease_actionAdapter(this));
contentPane.add(btnFive);
contentPane.add(btnSix);
contentPane.add(btnDecrease);
contentPane.add(btnBegin);
contentPane.add(btnOne);
contentPane.add(btnTwo);
contentPane.add(btnThree);
contentPane.add(btnMultiply);
contentPane.add(btnCancel);
contentPane.add(btnMinus);
contentPane.add(btnPoint);
contentPane.add(btnDivide);
contentPane.add(btnEqual);
contentPane.add(btnEight);
contentPane.add(btnNine);
contentPane.add(btnFour);
contentPane.add(btnSeven);
contentPane.add(btnIncrease);
contentPane.add(btnNull);
contentPane.add(txtResult);
contentPane.add(btnZero);
}
publicvoidbtnZero_actionPerformed(ActionEvente){
if(flag){//如果刚刚按下了运算符
txtResult.setText("");
if(flagpoint){//判断之前是否输入了点运算符
txtResult.setText("0."+e.getActionCommand());
flagpoint=false;
}else{
txtResult.setText(e.getActionCommand());
}
flagnumber=true;
}else{
intnum=txtResult.getText().indexOf(".");
if(num<0&&!
txtResult.getText().equals("0")){
txtResult.setText(txtResult.getText()+e.getActionCommand());
}elseif(num<0&&txtResult.getText().equals("0")){
txtResult.setText(e.getActionCommand());
}elseif(num>=0&&txtResult.getText().equals("0")){
txtResult.setText("0."+e.getActionCommand());
}elseif(num>=0&&!
txtResult.getText().equals("0")){
txtResult.setText(txtResult.getText()+e.getActionCommand());
}
}
flag=false;
flagequal=false;
}
publicvoidbtnIncrease_actionPerformed(ActionEvente){
if(flagequal){
txtResult.setText(txtResult.getText());
op=e.getActionCommand();//得到刚刚按下的运算符
front=txtResult.get