Swing界面实现画图板
最近几天在蓝杰集训,编写了一个简单的画图板。
实现画图板,首先需要创建一个继承JFrame的类,用这个类中父类的方法创建一个窗体并添加按键,为窗体和上面的按键添加监听器(监听器继承了接口Mouselistener、MouseMotionListener和ActionListioner)。
因为画图形需要在画板上获取坐标,所以添加的面板监听器是MouseListener(可以画直线和形状)和MouseMitionListener(可以画曲线)。用不同的Graphics的方法形状还可以多样化。
因为ActionListener中的方法中的getActionCommand可以用来获得按钮的信息,所以只为按键添加ActionListener。
因为每次改变窗体的显示范围或者最小化后重新打开窗体,窗体都会进行重绘,所以我们还需要创建一个数组队列来存储先相关的形状属性(另外新建一个形状的类,并创建一个个对象,对象里面存储了形状的信息的属性,我们可以用形状类的数组队列来存储一个个形状对象),在重写重绘方法的时候调用数组,重绘形状。
其中图形是画在面板上的,所以获取的Graphics是面板的Graphics,并且通过调用之前在监听器类中写好的获取画笔的方法传入监听器中(使用构造方法中的构造器传参的话,必须在创建对象时进行参数传递,假另外编写一个获取参数的方法的,可以更自由地在需要传入参数的时候进行参数传递),再对画笔的形状、粗细和颜色进行调整。
以下是我的窗体代码
public class logListener extends JFrame implements MouseListener{
p