输入任意三条边,判断能不能构成一个三角形,如果可以构成三角形,求出它的周长和面积。
package 三角形;
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import javax.swing.*;
public class Triangle {
JFrame jframe;
JPanel jp1,jp2,jp3,jp4,jp5;
JLabel jl1,jl2,jl3,jl4;
JButton jbtn1,jbtn2,jbtn3;
JTextField jt1,jt2,jt3,jt4,jt5;
Box b1;
public void go(){
jl1 = new JLabel("Triangle’s girth and area(三角形周长和面积)");
jl2 = new JLabel("请输入三角形的三条边:");
jl3 = new JLabel("此三角形的周长为:");
jl4 = new JLabel("此三角形的面积为:");
jl1.setFont(new Font("Dialog",Font.PLAIN,25));
jl2.setFont(new Font("Dialog",Font.PLAIN,18));
jl3.setFont(new Font("Dialog",Font.PLAIN,18));
jl4.setFont(new Font("Dialog",Font.PLAIN,18));
jt1 = new JTextField(8);
jt2 = new JTextField(8);
jt3 = new JTextField(8);
jt4 = new JTextField(8);
jt5 = new JTextField(8);
jt4.setEditable(false);
jt4.setBackground(Color.CYAN);
jt5.setEditable(false);
jt5.setBackground(Color.CYAN);
b1 = Box.createHorizontalBox();
jbtn1 = new JButton(" 求 解 ",new ImageIcon("1.png"));
b1.add(jbtn1);
b1.add(Box.createHorizontalStrut(30));
jbtn2 = new JButton(" 清 除 ",new ImageIcon("3.png"));
b1.add(jbtn2);
b1.add(Box.createHorizontalStrut(30));
jbtn3 = new JButton(" 退 出 ",new ImageIcon("2.png"));
b1.add(jbtn3);
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
jp4 = new JPanel();
jp5 = new JPanel();
jp1.setBackground(Color.WHITE);
jp2.setBackground(Color.WHITE);
jp3.setBackground(Color.WHITE);
jp4.setBackground(Color.WHITE);
jp1.add(jl1);
jp2.add(jl2);
jp2.add(jt1);
jp2.add(jt2);
jp2.add(jt3);
jp3.add(jl3);
jp3.add(jt4);
jp4.add(jl4);
jp4.add(jt5);
jp5.add(b1);
jframe = new JFrame("三角形周长和面积");
jframe.setLayout(null);
jp1.setBounds(0, 0, 600, 50);
jp2.setBounds(0, 50, 600, 50);
jp3.setBounds(0, 90, 600, 50);
jp4.setBounds(0, 130, 600, 50);
jp5.setBounds(0, 180, 600, 50);
jframe.add(jp1);
jframe.add(jp2);
jframe.add(jp3);
jframe.add(jp4);
jframe.add(jp5);
jframe.setSize(600, 250);
jframe.setLocation(450, 200);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setResizable(false);
jframe.setVisible(true);
/**
* 退出按钮注册事件
*/
jbtn3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO 自动生成的方法存根
System.exit(0);
}
});
/**
* 清除按钮注册事件
*/
jbtn2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
jt1.setText(null);
jt2.setText(null);
jt3.setText(null);
jt4.setText(null);
jt5.setText(null);
}
});
/**
* 求解按钮注册事件
*/
jbtn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
if (jt1.getText().length() == 0 || jt2.getText().length() == 0 ||jt3.getText().length() == 0) {
JOptionPane.showMessageDialog(jframe, "任意一条边不能为空,请输入三角形的三条边! ",
"警告", JOptionPane.WARNING_MESSAGE);
jt1.setText(null);
jt2.setText(null);
jt3.setText(null);
}else{
/*把字符串转换成double型*/
double a = Integer.parseInt(jt1.getText());
double b = Integer.parseInt(jt2.getText());
double c = Integer.parseInt(jt3.getText());
if(a<=0 || b<=0 || c<=0){
JOptionPane.showMessageDialog(jframe, "输入的边不能是负数或者0,请重新输入! ",
"错误", JOptionPane.ERROR_MESSAGE);
}else{
if((a+b)>c && (a+c)>b && (b+c)>a){
DecimalFormat df = new DecimalFormat("0.00");
double girth =a+b+c;
double p=(a+b+c)/2;
double area = Math.sqrt(p*(p-a)*(p-b)*(p-c));
/*控制输入结果为小数点后面两位*/
jt4.setText(df.format(girth));
jt5.setText(df.format(area));
}else{
JOptionPane.showMessageDialog(jframe, "输入的三条边不能构成三角形,请重新输入! ",
"错误", JOptionPane.ERROR_MESSAGE);
}
}
}
}
});
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
Triangle T = new Triangle();
T.go();
}
}