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