大家好,欢迎来到IT知识分享网。
计算器使我们在日常生活中经常使用的一个工具。这学期学java的时候,做的一个实验报告就是用swing组件或awt组件写一个简易计算器。
在此记录以下(用swing组件写的简易计算器),代码如下(经测试):
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.StringTokenizer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class JiSuan extends JFrame{
JPanel panel;
JTextField text;
JButton jb0,jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8,jb9; //0~9四个数字(可写成数组)
JButton bot,add,sub,mul,div,equ; //加减乘除以及小数点五个符号
public JiSuan(){
this.setBounds(300, 200, 400, 300); //窗体大小
this.setTitle("计算器"); //窗体名称
this.setLayout(new BorderLayout()); //设置计算机窗体的布局方式
text = new JTextField(15); //计算区域
//新建数字按钮
jb0 = new JButton("0");
jb1 = new JButton("1");
jb2 = new JButton("2");
jb3 = new JButton("3");
jb4 = new JButton("4");
jb5 = new JButton("5");
jb6 = new JButton("6");
jb7 = new JButton("7");
jb8 = new JButton("8");
jb9 = new JButton("9");
//新建符号按钮
bot = new JButton(".");
add = new JButton("+");
sub = new JButton("-");
mul = new JButton("*");
div = new JButton("/");
equ = new JButton("=");
//新建计算器数字及符号所在区域面板
panel = new JPanel();
panel.setLayout(new GridLayout(4,4)); //设置面板的布局方式
//将各按钮组件放入面板(panel)中
//第一行
panel.add(jb7);
panel.add(jb8);
panel.add(jb9);
panel.add(div);
//第二行
panel.add(jb4);
panel.add(jb5);
panel.add(jb6);
panel.add(mul);
//第三行
panel.add(jb1);
panel.add(jb2);
panel.add(jb3);
panel.add(sub);
//第四行
panel.add(bot);
panel.add(jb0);
panel.add(equ);
panel.add(add);
this.add(text,BorderLayout.NORTH);
this.add(panel);
MyEvent(); //事件处理
this.setVisible(true); //设置窗体显示
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗体可关闭
}
public void MyEvent(){
/*将以下内容封装到Text方法中
* jb0.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
// text.setText("0");
String str = jb0.getText();
System.out.println(str);
}
});*/
//为各按钮添加事件处理
Text(jb0);
Text(jb1);
Text(jb2);
Text(jb3);
Text(jb4);
Text(jb5);
Text(jb6);
Text(jb7);
Text(jb8);
Text(jb9);
Text(bot);
Text(add);
Text(sub);
Text(mul);
Text(div);
//“=”按钮的事件处理
equ.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
text.setText(text.getText()+equ.getText());
if(text.getText().contains("+")){//做加法运算
// String[] str1 = text.getText().split("+"); //错误语句
StringTokenizer st1 = new StringTokenizer(text.getText(),"+");
// System.out.println("str1======"+st1.nextToken());
double d1,d2 = 0;
d1 = Double.parseDouble(st1.nextToken());
while(st1.hasMoreTokens()){
StringTokenizer st2 = new StringTokenizer(st1.nextToken(),"=");
// System.out.println("str2======"+st2.nextToken());
d2 = Double.parseDouble(st2.nextToken());
}
text.setText(text.getText()+" "+(d1+d2));
}else if(text.getText().contains("-")){//做减法运算
StringTokenizer st1 = new StringTokenizer(text.getText(),"-");
double d1,d2 = 0;
d1 = Double.parseDouble(st1.nextToken());
while(st1.hasMoreTokens()){
StringTokenizer st2 = new StringTokenizer(st1.nextToken(),"=");
d2 = Double.parseDouble(st2.nextToken());
}
text.setText(text.getText()+" "+(d1-d2));
}else if(text.getText().contains("*")){//做乘法运算
StringTokenizer st1 = new StringTokenizer(text.getText(),"*");
double d1,d2 = 0;
d1 = Double.parseDouble(st1.nextToken());
while(st1.hasMoreTokens()){
StringTokenizer st2 = new StringTokenizer(st1.nextToken(),"=");
d2 = Double.parseDouble(st2.nextToken());
}
text.setText(text.getText()+" "+(d1*d2));
}else if(text.getText().contains("/")){//做除法运算
StringTokenizer st1 = new StringTokenizer(text.getText(),"/");
double d1,d2 = 0;
d1 = Double.parseDouble(st1.nextToken());
while(st1.hasMoreTokens()){
StringTokenizer st2 = new StringTokenizer(st1.nextToken(),"=");
d2 = Double.parseDouble(st2.nextToken());
}
text.setText(text.getText()+" "+(d1/d2)); //将运算结果放到text区域
}
}
});
}
//各按钮的事件处理方法
public void Text(JButton button){
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
// text.setText("0");
String str = button.getText();
// System.out.println(str);
text.setText(text.getText()+str);
}
});
// return button.getText();
}
//主函数
public static void main(String[] args) {
// TODO Auto-generated method stub
new JiSuan();
}
}
写的这个计算器虽然功能不算完善,不过可以实现基本的加减乘除。
运行结果如下图所示:
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/14241.html