java图形化界面实现简单计算器Word版.docx
《java图形化界面实现简单计算器Word版.docx》由会员分享,可在线阅读,更多相关《java图形化界面实现简单计算器Word版.docx(18页珍藏版)》请在冰豆网上搜索。
java图形化界面实现简单计算器Word版
学号11710115
天津城建大学
Java语言程序设计C
实验报告
实验5:
计算器
学生姓名
路江飞
班级
11卓越7班
一、实验目的
1.掌握Java图形组件和布局管理器的使用;
2.掌握使用Java事件处理机制的使用;
3.掌握图形界面的各种控件的使用,如:
标签、文本框、按钮、复选框、列表框、窗框等。
二、实验要求
1.采用布局管理器进行界面的布局;
2.学会对不同的事件用相应的事件处理器;
3.写出实验报告。
要求记录编译和执行Java程序当中的系统错误信息提材示,并给出解决办法。
三、实验内容
1.在随堂练习的简单计算器基础上设计一个多功能计算器。
包括复杂的功能:
比如记忆功能,三角函数,成方,对数等等。
五、实验结果
文件1:
packagecomputer;
importjava.awt.BorderLayout;
publicclassCompuerextendsJFrame{
privateJPanelcontentPane;
privateJTextFieldtextField;
privateJTextFieldtextField_1;
privateJTextFieldtextField_2;
privateJTextFieldtextField_3;
/**
*Launchtheapplication.
*/
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
//运行程序时,点击按钮输入公式,当点击等于号时显示出计算结果
try{
Compuerframe=newCompuer();
frame.setVisible(true);
Timetime=newTime();
time.setTime(frame.textField_3);
Threadthread=newThread(time);
thread.start();
}
catch(Exceptione){
e.printStackTrace();
}
}
});
}
/**
*Createtheframe.
*/
publicCompuer(){
setTitle("\u8BA1\u7B97\u5668");
setName("");
finalStringBuffers=newStringBuffer();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,412,448);
contentPane=newJPanel();
contentPane.setBorder(newEmptyBorder(5,5,5,5));
setContentPane(contentPane);
contentPane.setLayout(null);
textField=newJTextField();
textField.setEnabled(false);
textField.setLocale(Locale.UK);
textField.setForeground(Color.PINK);
textField.setText("\u6B22\u8FCE\u4F7F\u7528\u8BA1\u7B97\u5668");
textField.setBounds(10,20,368,30);
contentPane.add(textField);
textField.setColumns(10);
textField_1=newJTextField();//文本框textField_1,显示公式
textField_1.setBounds(10,102,368,30);
contentPane.add(textField_1);
textField_1.setColumns(10);
textField_2=newJTextField();//文本框textField_2.显示计算结果
textField_2.setBounds(10,142,368,30);
contentPane.add(textField_2);
textField_2.setColumns(10);
textField_3=newJTextField();//文本框textField_3,显示电子表
textField_3.setForeground(newColor(205,133,63));
textField_3.setBounds(10,60,368,30);
contentPane.add(textField_3);
textField_3.setColumns(10);
//按钮'清零',监听到按钮后清零
JButtonbtnC=newJButton("\u6E05\u96F6");
btnC.setForeground(Color.RED);
btnC.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
textField_1.setText("");
textField_2.setText("");
s.delete(0,s.length());
}
});
btnC.setBounds(10,182,183,44);
contentPane.add(btnC);
//按钮'退格',监听到按钮后退格
JButtonbutton_16=newJButton("\u9000\u683C");
button_16.setForeground(Color.RED);
button_16.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.delete(s.length()-1,s.length());
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_16.setBounds(193,182,185,44);
contentPane.add(button_16);
//按钮'*',监听到按钮后显示*
JButtonbutton_1=newJButton("*");
button_1.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('*');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_1.setBounds(285,271,93,44);
contentPane.add(button_1);
//按钮'6',监听到按钮后显示6
JButtonbutton_2=newJButton("6");
button_2.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('6');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_2.setBounds(193,271,93,44);
contentPane.add(button_2);
//按钮'5',监听到按钮后显示5
JButtonbutton_3=newJButton("5");
button_3.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('5');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_3.setBounds(100,271,93,44);
contentPane.add(button_3);
//按钮'4',监听到按钮后显示4
JButtonbutton_4=newJButton("4");
button_4.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('4');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_4.setBounds(10,271,93,44);
contentPane.add(button_4);
//按钮'-',监听到按钮后显示-
JButtonbutton_5=newJButton("-");
button_5.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('-');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_5.setBounds(285,313,93,44);
contentPane.add(button_5);
//按钮'3',监听到按钮后显示3
JButtonbutton_6=newJButton("3");
button_6.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('3');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_6.setBounds(193,313,93,44);
contentPane.add(button_6);
//按钮'2',监听到按钮后显示2
JButtonbutton_7=newJButton("2");
button_7.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('2');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_7.setBounds(100,313,93,44);
contentPane.add(button_7);
//按钮'1',监听到按钮后显示1
JButtonbutton_8=newJButton("1");
button_8.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('1');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_8.setBounds(10,313,93,44);
contentPane.add(button_8);
//按钮'+',监听到按钮后显示+
JButtonbutton_9=newJButton("+");
button_9.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('+');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_9.setBounds(285,355,93,44);
contentPane.add(button_9);
//按钮'=',点击按钮'=',将计算出结果**********************************
JButtonbutton_10=newJButton("=");
button_10.setForeground(Color.RED);
button_10.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringstr=s.toString();
Stringss=str;
Stringindex="[-]|[+]|[/]|[*]";
Stringnumber[]=str.split(index);
intcount=number.length;
doublenum[]=newdouble[count];
for(inti=0;inum[i]=Double.parseDouble(number[i]);
}
doubleresult=0;
if(ss.contains("+")){
result=num[0];
for(inti=1;iresult+=num[i];
}
}
if(ss.contains("-")){
result=num[0];
for(inti=1;iresult-=num[i];
}
}
if(ss.contains("*")){
result=num[0];
for(inti=1;iresult*=num[i];
}
}
if(ss.contains("/")){
result=num[0];
for(inti=1;iif(num[i]==0){//除数等于0时,显示错误信息
textField_2.setText("出错");
return;
}
else{
result/=num[i];
}
}
}
//inti=(int)Math.round(result*100);
//result=(double)i/100;
textField_2.setText(""+result);
}
});
button_10.setBounds(193,355,93,44);
contentPane.add(button_10);
//按钮'.',监听到按钮后显示。
.
JButtonbutton_11=newJButton(".");
button_11.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('.');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_11.setBounds(10,355,93,44);
contentPane.add(button_11);
//按钮'0',监听到按钮后显示0
JButtonbutton_12=newJButton("0");
button_12.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('0');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_12.setBounds(100,355,93,44);
contentPane.add(button_12);
//按钮'/',监听到按钮后显示/
JButtonbutton=newJButton("/");
button.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('/');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button.setBounds(285,227,93,44);
contentPane.add(button);
//按钮'9',监听到按钮后显示9
JButtonbutton_13=newJButton("9");
button_13.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('9');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_13.setBounds(193,227,93,44);
contentPane.add(button_13);
//按钮'8',监听到按钮后显示8
JButtonbutton_14=newJButton("8");
button_14.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('8');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_14.setBounds(100,227,93,44);
contentPane.add(button_14);
//按钮'7',监听到按钮后显示7
JButtonbutton_15=newJButton("7");
button_15.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
s.append('7');
Stringstr=s.toString();
textField_1.setText(str);
}
});
button_15.setBounds(10,227,93,44);
contentPane.add(button_15);
}
}
文件2:
importjava.util.Date;
importjavax.swing.JTextField;
publicclassTimeimplementsRunnable{
JTextFieldtext;
publicvoidsetTime(JTextFieldtext){
this.text=text;
}
@Override
publicvoidrun(){
//TODOAuto-generatedmethodstub
try{
while(true){
Datedata=newDate();
Strings=data.toString();
text.setText(s);
Thread.sleep(1000);
}
}
catch(InterruptedExceptione){
}
}
}
运行结果:
加法:
减法:
乘法:
除法(有意义):
除法(无意义):
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)