初学JAVA GUI自制计算器(自娱版)

最新版本,利用递归下降法的计算器实现运算优先级




最近初学gui设计,一时心血来潮,制作了这个简陋版计算器
我并没有花很多时间去制作,计算器的功能很少,但是以后一定会尽力去完善
如有不善的地方请多多指教


以下是程序代码:
package kl1;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.*;
import java.awt.*;
import java.lang.*;
public class jisuanqi extends JFrame{
private JButton button1=new JButton("*");
private JButton button2=new JButton("/");
private JButton button3=new JButton("+");
private JButton button4=new JButton("-");
private JButton button5=new JButton("%");
private JButton button6=new JButton("开方");
private JButton button7=new JButton("开方");
private JButton button8=new JButton("求幂");
private JTextField textField1=new JTextField();
private JTextField textField2=new JTextField();
private JTextField textField3=new JTextField();
TextField textField = new TextField();
public jisuanqi() {
setTitle("简陋计算器");
setSize(700,250);
setLocation(400,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(null);
textField1.setBounds(20,60,100,40);
textField2.setBounds(150,60,100,40);
textField3.setBounds(275,60,100,40);
add(textField1);
add(textField2);
add(textField3);
button1.setLocation(400,50);
button2.setLocation(500,50);
button3.setLocation(400,80);
button4.setLocation(500,80);
button5.setLocation(450,110);
button6.setLocation(20,40);
button7.setLocation(150,40);
button8.setLocation(110,100);
button1.setSize(100,20);
button2.setSize(100,20);
button3.setSize(100,20);
button4.setSize(100,20);
button5.setSize(100,20);
button6.setSize(70,20);
button7.setSize(70,20);
button8.setSize(70,20);
add(button1);
add(button2);
add(button3);
add(button4);
add(button5);
add(button6);
add(button7);
add(button8);
JLabel label = new JLabel(new ImageIcon("D:\\图片\\abcd.jpg"));//修改地址来更换程序里的图片 //
label.setBounds(0,0, 700, 250);
add(label);
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
double num1 = Double.parseDouble(textField1.getText());
double num2 = Double.parseDouble(textField2.getText());
double t1=num1*num2;
textField3.setText(Double.toString(t1));
JOptionPane.showMessageDialog(null, "积为:"+t1);
}
});
button2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
double num1 = Double.parseDouble(textField1.getText());
double num2 = Double.parseDouble(textField2.getText());
double t2=num1/num2;
textField3.setText(Double.toString(t2));
JOptionPane.showMessageDialog(null, "商为:"+t2);
}
});
button3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
double num1 = Double.parseDouble(textField1.getText());
double num2 = Double.parseDouble(textField2.getText());
double t3=num1+num2;
textField3.setText(Double.toString(t3));
JOptionPane.showMessageDialog(null, "和为:"+t3);
}
});
button4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
double num1 = Double.parseDouble(textField1.getText());
double num2 = Double.parseDouble(textField2.getText());
double t4=num1-num2;
textField3.setText(Double.toString(t4));
JOptionPane.showMessageDialog(null, "差为:"+t4);
}
});
button5.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
double num1 = Double.parseDouble(textField1.getText());
double num2 = Double.parseDouble(textField2.getText());
double t5=num1%num2;
textField3.setText(Double.toString(t5));
JOptionPane.showMessageDialog(null, "余数为:"+t5);
}
});
button6.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
double num1 = Double.parseDouble(textField1.getText());
double t6=Math.sqrt(num1);
textField3.setText(Double.toString(t6));
JOptionPane.showMessageDialog(null, num1+"开根号为:"+t6);
}
});
button7.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
double num2 = Double.parseDouble(textField2.getText());
double t7=Math.sqrt(num2);
textField3.setText(Double.toString(t7));
JOptionPane.showMessageDialog(null, num2+"开根号为:"+t7);
}
});
button8.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event) {
double num1 = Double.parseDouble(textField1.getText());
double num2 = Double.parseDouble(textField2.getText());
double t7=Math.pow(num1, num2);
textField3.setText(Double.toString(t7));
JOptionPane.showMessageDialog(null, num1+"的"+num2+"次幂是"+t7);
}
});
}
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
jisuanqi frame=new jisuanqi();
frame.setVisible(true);
}
}
就这些啦!