使用Eclipse软件和Java语言设计判断三角形类型且附加绘制三角形的图形界面的程序

前言

本文使用了Eclipse软件和简单的Java语言进行的程序设计

一、题目要求

使用Eclipse软件和Java语言设计出根据文本框输入的三条边进行①判断该三条边是否能够构成三角形并给出构成的三角形的类型。②如果能构建三角形则画出三角形的图形。

二、题目要求

使用简单的Java程序进行三角形的判断,使用Java Swing的知识进行绘制窗口的建立。

三、所使用到的知识:

窗口JFrame的常用方法、事件的处理ActionEvent事件、绘制图形的java.awt包。

四、实现代码如下

package xxx;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

class Windoww extends JFrame{//构建绘画窗口
	private static final long serialVersionUID = 1L;
	JTextField area1,area2,area3,result;//设置文本框
    JButton button;//设置按钮
    int xx,hh,aa;
  
    public Windoww() {}//无参构造方法
    public Windoww(String s,int x,int y,int w,int h) {//有参构造方法
    	init();//初始化
    	setTitle(s);//设置标题
    	setLocation(x,y);//设置初始位置
    	setSize(w,h);//设置宽度和高度
    	setVisible(true);//设置是否可见
    	setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//设置关闭方式
    }
    void init() {
    	//图形界面的设置
    	setLayout(new FlowLayout());
		add(new JLabel("边a:"));
		area1=new JTextField(22);
		add(area1);
		add(new JLabel("边b:"));
		area2=new JTextField(22);
		add(area2);
		add(new JLabel("边c:"));
		area3=new JTextField(22);
		add(area3);
		add(new JLabel("结果:"));
		result=new JTextField(22);
		add(result);
		add(new JLabel("按钮:"));
		button=new JButton("确定");
	    add(button);
	    add(new JLabel("画布:"));
	    //添加监听器
	    MyActionListener listen=new MyActionListener();
	    button.addActionListener(listen);
    }
    class MyActionListener implements ActionListener{//做出反应
    	public void actionPerformed(ActionEvent e) {
    		double a=Double.parseDouble(area1.getText());//获取文本框里面的参数值
    		double b=Double.parseDouble(area2.getText());
    		double c=Double.parseDouble(area3.getText());
    		/*获取完三条边以后进行判断是否构成三角形以及三角形的类型*/
    		if(a<=0||b<=0||c<=0) {
    			result.setText("输入不合法");//给出结果的响应
    		}
    		if(a+b<=c||Math.abs(a-b)>=c) {
    			result.setText("不是三角形");
    		}
    		else {
    			if(a==b) {
    				if(a==c) {
    					result.setText("等边三角形");
    				}
    				else {
    					result.setText("等腰三角形");
    				}
    			}
    			else {
    				if(a==c) {
    					result.setText("等腰三角形");
    				}
    				else {
    					if(b==c) {
    						result.setText("等腰三角形");
    					}
    					else {
    						result.setText("普通三角形");
    					}
    				}
    			}
    			
 /*以三角形的一边为平行坐标轴,且此边的一端点作为原点(0,0),
  * 边外一点的坐标为(x,h),此边的另一端点坐标为(a,0)*/
    			double x=(a*a+b*b-c*c)/(2*a);
    			double h=Math.sqrt(b*b-x*x);
    			xx=(int)x;//强制类型转换
    			hh=(int)h;
    			aa=(int)a;
    		
    			Graphics g=getGraphics();//绘画的笔
    			g.setColor(Color.red);//设置画笔的颜色
    			/*为了彩图美观,将其移动到了以(150,350)为原点的坐标轴*/
    			g.drawLine(150, 350, aa+150, 350);//两点直接绘画直线
    			g.drawLine(150, 350, 150+xx, 350-hh);
    			g.drawLine(150+xx, 350-hh, aa+150, 350);
       }
     }
   } 
}
public class TriangleTest {
	public static void main(String[] args) {
		 Windoww win = new Windoww("判别三角形",260,100,550,500);//main函数执行
	}
}

五、实现结果

初始界面

 

不能构建三角形的三条边

 

等边三角形

 

等腰三角形


结束语

小白的第一篇文章就写到这里,希望能对读者们起到一定的作用。

如果存在错误欢迎在评论区指出,可以多多交流哇,大家一起进步,嘿嘿。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值