请问这个该怎么用java代码实现

img


Java实验指导书里的Graphics programming里的一个问题,不知道怎么用代码编写,希望有人能解答一下

double calc( double first,double seconde,string symbol){
switch(symbol){
case "+":
return first+second;
case ....

}

窗体中放入相应的组件再设置布局

等我给你实现

package csdn005;

import javax.swing.*;
import java.awt.*;
import java.util.concurrent.atomic.AtomicReference;

public class JiSuanQi extends JFrame {

    public static void main(String[] args) {
        new JiSuanQi();
    }

    public JiSuanQi() {
        super("计算器");

        JPanel jPanel = new JPanel();

        JTextField number1 = new JTextField();
        number1.setColumns(5);
        Choice mChoice = new Choice();
        mChoice.setBounds(80, 0, 30, 9);
        mChoice.add("+");
        mChoice.add("-");
        mChoice.add("*");
        mChoice.add("/");
        AtomicReference<String> selectItem = new AtomicReference<>("+");
        mChoice.addItemListener(e -> {
            selectItem.set(mChoice.getSelectedItem());
            System.out.println("打印选择项:"+mChoice.getSelectedItem());
        });
        JTextField number2 = new JTextField();
        number2.setColumns(5);
        JLabel jLabel = new JLabel("=");
        JTextField result = new JTextField();
        result.setColumns(5);

        JButton jiSuan = new JButton("计算");
        jiSuan.addActionListener(e -> {
            // 获取 number1 的值
            String num1 = number1.getText();
            String num2 = number2.getText();
            String s = selectItem.get();
            switch (s) {
                case "+":
                    result.setText(Double.parseDouble(num1) + Double.parseDouble(num2) + "");
                    break;
                case "-":
                    result.setText(Double.parseDouble(num1) - Double.parseDouble(num2) + "");
                    break;
                case "*":
                    result.setText(Double.parseDouble(num1) * Double.parseDouble(num2) + "");
                    break;
                case "/":
                    result.setText(Double.parseDouble(num1) / Double.parseDouble(num2) + "");
                    break;
                default:
            }

        });
        JButton clear = new JButton("清空结果");
        clear.addActionListener(e -> {
            number1.setText("");
            number2.setText("");
            result.setText("");
        });
        JCheckBox ck = new JCheckBox("结果取整");
        ck.addActionListener(e -> {
            result.setText(result.getText().substring(0,result.getText().indexOf(".")));
        });
        clear.setBounds(400,0,50,20);
        jPanel.add(number1);
        jPanel.add(mChoice);
        jPanel.add(number2);
        jPanel.add(jLabel);
        jPanel.add(result);
        jPanel.add(jiSuan);
        jPanel.add(clear);
        jPanel.add(ck);


        this.add(jPanel);
        this.setBounds(700,400,400,200);
        this.setVisible(true);
        setLocationRelativeTo(null);
        this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
}