初學JAVA GUI自制計算器(自娛版)

最新版本,利用遞歸下降法的計算器實現(xiàn)運算優(yōu)先級




最近初學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, "余數(shù)為:"+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);
? ? ??
}
}
就這些啦!