【Java】Swing实现一个简单的计算器
java编写的图形化界面,实现基本加减乘除根号运算
import javax.swing.*;import java.awt.*;
/**
* 计算器
* @author paul
* 2019.11.25 21:43
* */
public class MyCalculator {
private String str="";//输入输出框内容
private JTextField text_input;//输出框
private JPanel jp_bottomArea;//按钮区域
private String []addsButtonString={"1","2","3","+","4","5","6","-","7","8","9","*",".","0","求根","/","=","取反","AC"};
public MyCalculator(){
//初始化窗体
JFrame frame=new JFrame("计算器");
Container c=frame.getContentPane();
c.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));//设置排布方式为Y轴排列
frame.setLocation(200,300);//设置位置
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
text_input=new JTextField(30);
text_input.setHorizontalAlignment(JTextField.RIGHT);
JPanel jPanel=new JPanel(new GridLayout(1,1,10,10));
jPanel.add(text_input);
c.add(jPanel);
GridBagLayout gridBagLayout=new GridBagLayout();
GridBagConstraints cs=new GridBagConstraints();
jp_bottomArea=new JPanel();
jp_bottomArea.setLayout(gridBagLayout);
for(int i=0;i<addsButtonString.length;i++){
if((i+1)%4==0){
cs.gridwidth=GridBagConstraints.REMAINDER;
}else if(addsButtonString[i].equals("=")){
cs.gridwidth=2;
}else {
cs.fill=GridBagConstraints.BOTH;
cs.weightx=1.0;
cs.gridwidth=1;
}
JButton btn = new JButton(addsButtonString[i]);
gridBagLayout.setConstraints(btn,cs);
btn.addActionListener(e -> {
String command = e.getActionCommand();
setShowTextFiledNew(command);
});
jp_bottomArea.add(btn);
}
c.add(jp_bottomArea);
frame.pack();
}
/**
* 设置显示内容窗格
* @param command 按钮点击命令
* 如果按下等于,则执行计算
* 如果按下运算符,则格式为 空格+运算符+空格
* 如果按下时数字,则直接拼接
* */
public void setShowTextFiledNew(String command){
if(command.equals("=")){
str=getResult(str);
}else if(command.equals("+")||command.equals("-")||command.equals("*")||command.equals("/")||command.equals("求根")||command.equals("取反")){
str=str+" "+command+" ";
}else if(command.equals("AC")){
str="";
}else {
str=str+command;
}
text_input.setText(str);
}
/**
* 计算
* @param str 需要计算的字符串
* 根据空格进行分割成字符串数组
* 然后判断是哪种类型的运算符并进行计算
* 通过一个result来存放最终结果
* */
public String getResult(String str){
Double result=0.0;
String []need_to_do=str.split(" ");
for(int i=0;i<need_to_do.length;i++){
switch (need_to_do[i]){
case "+":
result=result+(Double.parseDouble(need_to_do[i-1])+Double.parseDouble(need_to_do[i+1]));
break;
case "-":
result=result+(Double.parseDouble(need_to_do[i-1])-Double.parseDouble(need_to_do[i+1]));
break;
case "*":
result=result+(Double.parseDouble(need_to_do[i-1])*Double.parseDouble(need_to_do[i+1]));
break;
case "/":
result=result+(Double.parseDouble(need_to_do[i-1])/Double.parseDouble(need_to_do[i+1]));
break;
case "求根":
result=result+(Math.sqrt(Double.parseDouble(need_to_do[i-1])));
break;
case "取反":
result=result+(-Double.parseDouble(need_to_do[i-1]));
break;
}
}
return result+"";
}
public static void main(String[] args) {
new MyCalculator();
}
}
界面:
以上是 【Java】Swing实现一个简单的计算器 的全部内容, 来源链接: utcz.com/389909.html