画板功能实现:
1、直线、矩形、椭圆、多边形、曲线等基本图形的绘制;
2、多种颜色可选;
3、橡皮檫采用加粗画笔,另添加一键清屏功能;
4、重绘功能;
5、多边形采用两种方式自动闭合:一种鼠标双击闭合,一种为切换其它图形自动闭合;
6、采用边界布局。
图形效果:
具体代码如下:
主界面程序
package paint0701;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class PainterUI extends JPanel {
private static final long serialVersionUID = 1L;
private Shape[] shapeParameter = new Shape[20000];
public void initUI() {
// 新建窗体并命名
JFrame jf = new JFrame("画板");
// 设置窗体大小
jf.setSize(1100, 700);
// 窗体设置居中
jf.setLocationRelativeTo(null);
// 设置窗体关闭
jf.setDefaultCloseOperation(3);
// 设置窗体边界布局
jf.setLayout(new BorderLayout());
// 添加3个JPanel容器
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
// 将JPanel布局到窗体中
jf.add(this, BorderLayout.CENTER);
jf.add(jp2, BorderLayout.WEST);
jf.add(jp3, BorderLayout.EAST);
// 设置jp1
this.setPreferredSize(new Dimension(900, 700));
this.setBackground(Color.white);
// 创建事件监听器对象
DrawListener dl = new DrawListener();
// 给画布添加监听器
this.addMouseListener(dl);
this.addMouseMotionListener(dl);
// 设置jp2
jp2.setPreferredSize(new Dimension(100, 700));
jp2.setBackground(Color.LIGHT_GRAY);
// 设置jp3
jp3.setPreferredSize(new Dimension(100, 700));
jp3.setBackground(Color.LIGHT_GRAY);
// 添加图形按钮
String[] shapeArray = { "直线", "矩形", "椭圆", "多边形", "画笔", "橡皮檫", "清屏" };
for (int i = 0; i < shapeArray.length; i++) {
// 创建图形按钮
JButton jbu1 = new JButton(shapeArray[i]);
// 设置按钮大小
jbu1.setPreferredSize(new Dimension(100, 40));
// 将按钮添加到jp2容器中
jp2.add(jbu1);
// 给按钮注册监听器
jbu1.addActionListener(dl);
}
// 设置颜色按钮
Color[] colorArray = { Color.red, Color.pink, Color.orange, C