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);
}
}
}