ctrl+shift+o 自动导包

JFrame

顶级容器类
方法
1.可以直接使用setSize()设置它的Size,其他组件需要使用setPreferredSize()设置Size

2.setDefaultCloseOperation(operation)
operation 有四种值可选:
DO_NOTHING_ON_CLOSE
HIDE_ON_CLOSE
DISPOSE_ON_CLOSE 只关闭这个窗口
EXIT_ON_CLOSE 关闭整个程序
3.setVisible(true)
设置窗口可见,先设置窗口可见,再获取画笔
4.addMouseListener(mListener)
为窗口添加对鼠标操作的监听器
5.add(button);
添加组件

JButton

添加多个button,可以使用循环和数组,优化代码
1.setBackground(Color color)
设置button的背景颜色
Color类设置了许多静态常量颜色,可以直接使用,如Color.RED,或Color.red。大小写均可
2.addActionListener(mListener)
添加按钮监听器

Graphics

画笔类
直线drawLine、矩形drawRect、圆形drawOval
设置颜色
setColor

ActionListener,MouseListener

实现接口时,因为接口继承自abstract类,要重写接口中所有方法
e.getSource()获取产生e的对象
e.getActionCommand()获取按钮的label,如果按钮没有label,则为长度为零的字符串:“” *不是null

画图思路

首先创建一个JFrame类作为画板,画板基础属性包括大小,位置,名称,关闭时的操作
在画板上添加按钮,诸如Windows的画板,可以实现绘制直线,三角形等形状的操作,同时可以选定边框颜色。按钮包括label标签,颜色等基础属性,添加完所有组件后,使画板可见。
为所有组件和画板设置监听器,按钮的监听器ActionListener。

编写一个监听器类,要向该类传递创建的JFrame对象。
点击形状按钮时,接受按钮的label
点击颜色按钮时,接受按钮的背景颜色

根据不同的label绘制不同的图像

注意:
Q:如何确定一个立方体?
A:三个点。
所以绘制一个立方体,可以先绘制一个矩形,再点击第三个点,连接剩下的五条线

三角形同理,一条线和线外的一个点确定,所以可以先画一条线,再根据线外点,连接剩下的两条线。

鼠标单击clicked,按下pressed与松开pressed

在同一个点快速单击,会调用pressed和released方法和clicked方法,所以在绘制立方体时,要注意如何编写第三个点的代码
解决:
可以设置一个标志位和存储位,当按下松开发生在不同点时,保存两个点的坐标,并设置标志位为true,这样在按下第三个点调用clicked,判断标志位的状态,并在画图结束后设置为false

java m老师小讲堂——画板相关推荐

  1. JAVA课程设计——“小羊吃蓝莓”小游戏

    JAVA课程设计--"小羊吃蓝莓"小游戏 1. 团队课程设计博客链接 http://www.cnblogs.com/HXY071/p/7061216.html 2. 个人负责模块或 ...

  2. JavaFx,Swing小程序画板,画图工具

    JavaFx,Swing小程序画板 package sample;import javafx.application.Application; import javafx.geometry.Pos; ...

  3. Java写五子棋小游戏

    Java写五子棋小游戏 最近用Java写了个五子棋小游戏,遇到了许多细节问题,在此不得不总结一下,以便有同样需求朋友参考. 1.]面板发生变化,重绘棋盘与棋局问题: 必须调用父类的paint方法,因为 ...

  4. 600多个微信小程序源码_点餐系统的开发,java后台+微信小程序 实现完整的餐厅点餐系统。微信扫码点餐小程序源码讲解...

    今天来给大家讲解一个完整的微信扫码点餐项目.java后台+微信小程序实现点餐系统. 后台技术选型: JDK8 MySQL(需要5.6以上) Spring-boot Spring-data-jpa Lo ...

  5. 硬盘显示容量和实际容量不符合_SSD小讲堂丨实力科普固态硬盘实际容量为何比标称小...

    最近有粉丝向小星提出了这样一个问题: 星粉 为什么我新买的1TB SSD可识别的总容量只有932GB呢? 三星品牌存储 因为-- 相信很多细心的小伙伴都发现了,新买的固态硬盘装进电脑里后,实际识别容量 ...

  6. Java多线程知识小抄集(四)——完结

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  7. Java多线程知识小抄集(三)

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  8. Java多线程知识小抄集(二)

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  9. Java多线程知识小抄集(一)

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

最新文章

  1. 蓝桥杯国赛-估计人数
  2. 计算机组成原理ALU加法器
  3. cpu密集型 计算密集型 io密集型 简介
  4. Citrix VDI实战攻略之八:测试验收
  5. php中的empty和isset
  6. 官宣:神策 2018 数据驱动大会亮点回顾
  7. 【渝粤教育】国家开放大学2018年春季 8638-22T薪酬制度与薪酬管理 参考试题
  8. linux 目录大小是12288,【系统知识点】linux目录结构(示例代码)
  9. 业务中台管理系统、业务中台架构、接口类服务、模型类服务、界面类服务、组件类服务、服务架构、中后台、服务审核、AI服务、位置服务、行业场景服务、企业中台、接口配置、模型配置、数据处理、结构化数据、数据源
  10. 484个PHP必备的函数集
  11. C语言程序设计第五版谭浩强课后答案 第四章习题答案
  12. 嵌入式工程师必须知道的一些好网站
  13. 商场管理系统实战项目
  14. 如何计算机械能增加量,探讨优化验证机械能守恒定律实验中动能增加量的计算方法...
  15. vscode中文配置中文插件
  16. HBase thrift2
  17. 初入职场两件事 入对行,跟对人---Leo读 不是孙振耀写的职场感言 6
  18. OI中的组合数与二项式
  19. dede织梦html手机模板,dede织梦cms手机站模板制作和调用方法
  20. Fiddler Classic

热门文章

  1. Zynq-Linux移植学习笔记
  2. 【干货】数据产品经理如何快速了解业务
  3. java中 Excel文件解析及超大Excel文件读写
  4. win7浏览器主页修改不过来_win7系统ie主页无法修改怎么办_解决win7ie主页改不过来的办法...
  5. 这些链接都打不开,失效了
  6. Axure RP 9最新版软件及汉化包下载
  7. 我司工程师荣获2020年度网络安全等级保护测评体系建设工作表现突出个人
  8. TransactionScope使用(二)——msdtc不可用
  9. hexo博客kaze主题自定义社交链接
  10. R语言时间序列分析之ARIMA模型预测