三角形周长和面积

输入任意三条边,判断能不能构成一个三角形,如果可以构成三角形,求出它的周长和面积。

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

	}

}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值