import java.awt.*;
import javax.swing.*;
public class BuildHouse extends JFrame {
private static final long serialVersionUID = -2585364079235782035L;// 需要实现接口java.io.Serializable 添加一个序列化号。没有这个会报警告
public static void main(String[] args) {
BuildHouse bd = new BuildHouse();
bd.setTitle("House");// 设置窗口标题
bd.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 定义JFrame关闭时的操作(必需),有效避免不能关闭后台当前框体进程的问题
bd.setVisible(true);// 设置可视
bd.setSize(1200, 800); // 定义JFrame的相关属性 设置窗体大小
bd.setLocationRelativeTo(null);// 设置居中
bd.setVisible(true); // 设置可视
}
public void paint(Graphics g) {
Point door1_left_point = new Point(300, 500);// 门1 左上角点
Point door2_left_point = new Point(800, 500);// 门2 左上角点
Circle c1 = new Circle(380, 600, 15);// 门1 圆的位置
Circle c2 = new Circle(880, 600, 15);// 门2 圆的位置
Door d[] = new Door[2];// 门 数组 定义了两个门
d[0] = new Door(door1_left_point, 200, 100, c1);// 门1 初始化
d[1] = new Door(door2_left_point, 200, 100, c2);// 门2 初始化
Point win0_left_point = new Point(150, 500);// 定义 四个窗户的左上角的位置
Point win1_left_point = new Point(450, 500);
Point win2_left_point = new Point(650, 500);
Point win3_left_point = new Point(950, 500);
Window w[] = new Window[4];// 窗户 定义了四个窗子
w[0] = new Window(win0_left_point, 100, 100, 2, 2);
w[1] = new Window(win1_left_point, 100, 100, 2, 2);
w[2] = new Window(win2_left_point, 100, 100, 2, 2);
w[3] = new Window(win3_left_point, 100, 100, 2, 2);
Point top_point_tran = new Point(600, 80);// 定义屋顶的三个坐标点
Point right_point_tran = new Point(1100, 400);
Point left_point_tran = new Point(100, 400);
House h = new House(left_point_tran, right_point_tran, top_point_tran, 300, d, w);// 构造初始化一个房子
Graphics2D g2 = (Graphics2D) g;
Stroke stroke = new BasicStroke(3.0f);// 设置线条粗细宽度为3.0
g2.setStroke(stroke);
g.setColor(Color.YELLOW);// 设置线条颜色
g.drawLine(h.left_point.x, h.left_point.y, h.top_point.x, h.top_point.y);// 根据屋顶的三个顶点 画出屋顶
g.drawLine(h.right_point.x, h.right_point.y, h.top_point.x, h.top_point.y);
g.drawRect(h.left_point.x, h.left_point.y, h.right_point.x - h.left_point.x, h.hight);// 根据屋顶三角形的下面的两个点以及房屋的高度hight画出house的整体框架
g.setColor(Color.GRAY);// 设置颜色
g.fillRect(h.door_ary[0].left_point.x, h.door_ary[0].left_point.y, h.door_ary[0].wight, h.door_ary[0].length);
g.setColor(Color.YELLOW);// 设置颜色
g.drawRect(h.door_ary[0].left_point.x, h.door_ary[0].left_point.y, h.door_ary[0].wight, h.door_ary[0].length);// 根据类Door
// 的对象数组d[0]画出第一个门
g.setColor(Color.BLUE);// 设置颜色
g.fillArc(h.door_ary[0].circle_hand.x, h.door_ary[0].circle_hand.y, h.door_ary[0].circle_hand.r,
h.door_ary[0].circle_hand.r, 0, 360);
g.setColor(Color.YELLOW);// 设置颜色
g.drawArc(h.door_ary[0].circle_hand.x, h.door_ary[0].circle_hand.y, h.door_ary[0].circle_hand.r,
h.door_ary[0].circle_hand.r, 0, 360);// 画出第一个门的把手圆
g.setColor(Color.GRAY);// 设置颜色
g.fillRect(h.door_ary[1].left_point.x, h.door_ary[1].left_point.y, h.door_ary[1].wight, h.door_ary[1].length);
g.setColor(Color.YELLOW);// 设置颜色
g.drawRect(h.door_ary[1].left_point.x, h.door_ary[1].left_point.y, h.door_ary[1].wight, h.door_ary[1].length);// 根据类Door
// 的对象数组d[1]画出第二个门
g.setColor(Color.BLUE);// 设置颜色
g.fillArc(h.door_ary[1].circle_hand.x, h.door_ary[1].circle_hand.y, h.door_ary[1].circle_hand.r,
h.door_ary[1].circle_hand.r, 0, 360);
g.setColor(Color.YELLOW);// 设置颜色
g.drawArc(h.door_ary[1].circle_hand.x, h.door_ary[1].circle_hand.y, h.door_ary[1].circle_hand.r,
h.door_ary[1].circle_hand.r, 0, 360);// 画出第一个门的把手圆
g.setColor(Color.GRAY);// 设置颜色
g.fillRect(h.window_ary[0].left_point.x, h.window_ary[0].left_point.y, h.window_ary[0].wight,
h.window_ary[0].length / 2);// 根据类Window 的对象数组w[]画出第一个窗户 一个窗户有四个小矩形组成,我将一个大窗户分为三个矩形画,具体方法参见代码
g.fillRect(h.window_ary[0].left_point.x, h.window_ary[0].left_point.y + h.window_ary[0].length / 2,
h.window_ary[0].wight, h.window_ary[0].length / 2);
g.fillRect(h.window_ary[0].left_point.x, h.window_ary[0].left_point.y, h.window_ary[0].wight / 2,
h.window_ary[0].length);
g.fillRect(h.window_ary[1].left_point.x, h.window_ary[1].left_point.y, h.window_ary[1].wight,
h.window_ary[1].length / 2);// 画出第二个窗户
g.fillRect(h.window_ary[1].left_point.x, h.window_ary[1].left_point.y + h.window_ary[1].length / 2,
h.window_ary[1].wight, h.window_ary[1].length / 2);
g.fillRect(h.window_ary[1].left_point.x, h.window_ary[1].left_point.y, h.window_ary[1].wight / 2,
h.window_ary[1].length);
g.fillRect(h.window_ary[2].left_point.x, h.window_ary[2].left_point.y, h.window_ary[2].wight,
h.window_ary[2].length / 2);// 画出第三个窗户
g.fillRect(h.window_ary[2].left_point.x, h.window_ary[2].left_point.y + h.window_ary[2].length / 2,
h.window_ary[2].wight, h.window_ary[2].length / 2);
g.fillRect(h.window_ary[2].left_point.x, h.window_ary[2].left_point.y, h.window_ary[2].wight / 2,
h.window_ary[2].length);
g.fillRect(h.window_ary[3].left_point.x, h.window_ary[3].left_point.y, h.window_ary[3].wight,
h.window_ary[3].length / 2);// 画出第四个窗户
g.fillRect(h.window_ary[3].left_point.x, h.window_ary[3].left_point.y + h.window_ary[3].length / 2,
h.window_ary[3].wight, h.window_ary[3].length / 2);
g.fillRect(h.window_ary[3].left_point.x, h.window_ary[3].left_point.y, h.window_ary[3].wight / 2,
h.window_ary[3].length);
g.setColor(Color.YELLOW);// 设置颜色
g.drawRect(h.window_ary[0].left_point.x, h.window_ary[0].left_point.y, h.window_ary[0].wight,
h.window_ary[0].length / 2);// 根据类Window 的对象数组w[]画出第一个窗户 一个窗户有四个小矩形组成,我将一个大窗户分为三个矩形画,具体方法参见代码
g.drawRect(h.window_ary[0].left_point.x, h.window_ary[0].left_point.y + h.window_ary[0].length / 2,
h.window_ary[0].wight, h.window_ary[0].length / 2);
g.drawRect(h.window_ary[0].left_point.x, h.window_ary[0].left_point.y, h.window_ary[0].wight / 2,
h.window_ary[0].length);
g.drawRect(h.window_ary[1].left_point.x, h.window_ary[1].left_point.y, h.window_ary[1].wight,
h.window_ary[1].length / 2);// 画出第二个窗户
g.drawRect(h.window_ary[1].left_point.x, h.window_ary[1].left_point.y + h.window_ary[1].length / 2,
h.window_ary[1].wight, h.window_ary[1].length / 2);
g.drawRect(h.window_ary[1].left_point.x, h.window_ary[1].left_point.y, h.window_ary[1].wight / 2,
h.window_ary[1].length);
g.drawRect(h.window_ary[2].left_point.x, h.window_ary[2].left_point.y, h.window_ary[2].wight,
h.window_ary[2].length / 2);// 画出第三个窗户
g.drawRect(h.window_ary[2].left_point.x, h.window_ary[2].left_point.y + h.window_ary[2].length / 2,
h.window_ary[2].wight, h.window_ary[2].length / 2);
g.drawRect(h.window_ary[2].left_point.x, h.window_ary[2].left_point.y, h.window_ary[2].wight / 2,
h.window_ary[2].length);
g.drawRect(h.window_ary[3].left_point.x, h.window_ary[3].left_point.y, h.window_ary[3].wight,
h.window_ary[3].length / 2);// 画出第四个窗户
g.drawRect(h.window_ary[3].left_point.x, h.window_ary[3].left_point.y + h.window_ary[3].length / 2,
h.window_ary[3].wight, h.window_ary[3].length / 2);
g.drawRect(h.window_ary[3].left_point.x, h.window_ary[3].left_point.y, h.window_ary[3].wight / 2,
h.window_ary[3].length);
}
}
桃花岛人贩子
- 粉丝: 3
- 资源: 12
最新资源
- Odin Inspector and Serializer v3.3.1.10 (23 Oct 2024).unitypackage
- 一个基于qt实现钩子屏蔽系统按键、任务管理器、任务栏实例
- 利用Qt多线程 实现了同时画圆画方的功能,利用Qt的信号与槽机制实现了线程间的通信
- 大模型Llama架构:从理论到实战
- 花生缺陷识别,可识别坏的,有虫子,霉变,萎缩,好的,7245张图片,支持coco json格式的标注,准确识别率在94.3%以上
- 花生缺陷识别,可识别坏的,有虫子,霉变,萎缩,好的,7245张图片,支持pasical voc xml格式的标注,准确识别率在94.3%以上
- 基于springboot的健身房管理系统APP-q1b95(源码+数据库+一对一指导)
- 总务科(基建办)2024年工作总结.doc
- PDF小助手(PDF Assistant)
- TCP/IP协议详解,压缩包内包含20个PDF文件 深入的讲解TCP/IP协议
- Web端自定义地图样式配置详解-基于Mapbox Style 规范的深入解析与应用
- ea6c23cfc53dcfd27a7a20814794e6cf.zip
- 西门子s7-200smart程序110个包括伺服控制,过程控制,模拟量控制,通讯控制,开关量控制,pid控制,恒压供水,暖通等
- BasicRF聊天室写代码.docx
- 花生缺陷识别,可识别坏的,有虫子,霉变,萎缩,好的,7245张图片,支持yolo v5格式的标注,准确识别率在94.3%以上
- 标准rrt算法路径规划代码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈