java m老师小讲堂——画板
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
在同一个点快速单击,会调用presse
d和released
方法和clicked
方法,所以在绘制立方体时,要注意如何编写第三个点的代码
解决:
可以设置一个标志位和存储位,当按下松开发生在不同点时,保存两个点的坐标,并设置标志位为true
,这样在按下第三个点调用clicked
,判断标志位的状态,并在画图结束后设置为false
java m老师小讲堂——画板相关推荐
- JAVA课程设计——“小羊吃蓝莓”小游戏
JAVA课程设计--"小羊吃蓝莓"小游戏 1. 团队课程设计博客链接 http://www.cnblogs.com/HXY071/p/7061216.html 2. 个人负责模块或 ...
- JavaFx,Swing小程序画板,画图工具
JavaFx,Swing小程序画板 package sample;import javafx.application.Application; import javafx.geometry.Pos; ...
- Java写五子棋小游戏
Java写五子棋小游戏 最近用Java写了个五子棋小游戏,遇到了许多细节问题,在此不得不总结一下,以便有同样需求朋友参考. 1.]面板发生变化,重绘棋盘与棋局问题: 必须调用父类的paint方法,因为 ...
- 600多个微信小程序源码_点餐系统的开发,java后台+微信小程序 实现完整的餐厅点餐系统。微信扫码点餐小程序源码讲解...
今天来给大家讲解一个完整的微信扫码点餐项目.java后台+微信小程序实现点餐系统. 后台技术选型: JDK8 MySQL(需要5.6以上) Spring-boot Spring-data-jpa Lo ...
- 硬盘显示容量和实际容量不符合_SSD小讲堂丨实力科普固态硬盘实际容量为何比标称小...
最近有粉丝向小星提出了这样一个问题: 星粉 为什么我新买的1TB SSD可识别的总容量只有932GB呢? 三星品牌存储 因为-- 相信很多细心的小伙伴都发现了,新买的固态硬盘装进电脑里后,实际识别容量 ...
- Java多线程知识小抄集(四)——完结
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- Java多线程知识小抄集(三)
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- Java多线程知识小抄集(二)
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
- Java多线程知识小抄集(一)
欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...
最新文章
- 蓝桥杯国赛-估计人数
- 计算机组成原理ALU加法器
- cpu密集型 计算密集型 io密集型 简介
- Citrix VDI实战攻略之八:测试验收
- php中的empty和isset
- 官宣:神策 2018 数据驱动大会亮点回顾
- 【渝粤教育】国家开放大学2018年春季 8638-22T薪酬制度与薪酬管理 参考试题
- linux 目录大小是12288,【系统知识点】linux目录结构(示例代码)
- 业务中台管理系统、业务中台架构、接口类服务、模型类服务、界面类服务、组件类服务、服务架构、中后台、服务审核、AI服务、位置服务、行业场景服务、企业中台、接口配置、模型配置、数据处理、结构化数据、数据源
- 484个PHP必备的函数集
- C语言程序设计第五版谭浩强课后答案 第四章习题答案
- 嵌入式工程师必须知道的一些好网站
- 商场管理系统实战项目
- 如何计算机械能增加量,探讨优化验证机械能守恒定律实验中动能增加量的计算方法...
- vscode中文配置中文插件
- HBase thrift2
- 初入职场两件事 入对行,跟对人---Leo读 不是孙振耀写的职场感言 6
- OI中的组合数与二项式
- dede织梦html手机模板,dede织梦cms手机站模板制作和调用方法
- Fiddler Classic