【Java】【GUI】MVC结构

在这里插入图片描述
Triangle类:

package Gui;

public class Triangle {
    private double SideA,SideB,SideC;

    public void setSideA(double sideA) {
        SideA = sideA;
    }

    public void setSideB(double sideB) {
        SideB = sideB;
    }

    public void setSideC(double sideC) {
        SideC = sideC;
    }
    public String getArea(){
        if(SideA + SideB > SideC &&
        SideA + SideC > SideB &&
        SideB + SideC > SideA){
            double p = (SideA + SideB + SideC) / 2;
            double area = Math.sqrt(p * (p-SideA) * (p-SideB) * (p-SideC));
            return String.valueOf(area);
        }else{
            return "无法计算面积";
        }
    }
}

MyFrame类:

package Gui;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MyFrame extends JFrame {
    Triangle triangle;
    JTextField text1,text2,text3;
    JTextArea area;
    JButton button;
    JPanel panel;

    public static void main(String[] args) {
        MyFrame myFrame = new MyFrame();
    }

    public MyFrame(){
        init();
        setTitle("使用MVC结构");
        setBounds(300,300,420,260);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        validate();
    }
    void init(){
        triangle = new Triangle();
        setLayout(new FlowLayout());
        text1 = new JTextField(5);
        text2 = new JTextField(5);
        text3 = new JTextField(5);
        panel = new JPanel();
        panel.add(new JLabel("边A:"));
        panel.add(text1);
        panel.add(new JLabel("边B:"));
        panel.add(text2);
        panel.add(new JLabel("边C:"));
        panel.add(text3);
        button = new JButton("计算面积");
        panel.add(button);
        add(panel,BorderLayout.NORTH);

        area = new JTextArea(10,40);
        add(new JScrollPane(area),BorderLayout.CENTER);

        PoliceListener policeListener = new PoliceListener();
        button.addActionListener(policeListener);




    }
    class PoliceListener implements ActionListener {
        @Override
        public void actionPerformed(ActionEvent e) {
            try{
                double A = Double.parseDouble(text1.getText().trim());
                double B = Double.parseDouble(text2.getText().trim());
                double C = Double.parseDouble(text3.getText().trim());
                triangle.setSideA(A);
                triangle.setSideB(B);
                triangle.setSideC(C);
                String Area = triangle.getArea();
                area.append("三角形"+A+","+B+","+C+"的面积:");
                area.append(Area + "\n");


            }catch (Exception ex){
                area.append("\n"+ex+"\n");
            }
            text1.setText(null);
            text2.setText(null);
            text3.setText(null);
        }
    }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值