这个画板现在可以实现的功能包括话各种图形、铅笔、喷漆、刷子、橡皮、吸管取色这些。下面就来一步步分析下这个画板是怎么实现的吧!
一、界面的生成
各个组件部分是怎么生成的在这里我就不一一列出来了,这儿就把左侧工具栏部分的生成用代码表示一下,其它部分都相似的。
Java代码
package db.xyz.DrawBoardTool; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JPanel; import db.xyz.Listener.DrawListener; import db.xyz.Listener.HelpListener; public class DrawBoardTool extends JPanel{ DrawListener dListener; public DrawBoardTool(DrawListener dListener){ this.dListener = dListener; unitTools(); } public void unitTools(){ //设置工具栏布局为流式布局 this.setLayout(new FlowLayout()); //创建一个窗体对象 JPanel panel = new JPanel(); //设置布局为网格布局 panel.setLayout(new FlowLayout()); panel.setPreferredSize(new Dimension(70,300)); //数组存放图片位置 String [] tool = {"image/line.png","image/pencil.png","image/rect.png","image/frect.png","image/oval.png","image/foval.png","image/zhex.png","image/erase.png","image/penqi.png","image/brush.png","image/roundrect.png","image/xiqu.jpg"}; //数组存放控制命令 String [] command = {"line","pencil","rect","frect","oval","foval","zhex","erase","penqi","brush","roundrect","xiqu"}; HelpListener dl = new HelpListener(); for(int i = 0;i" wmode="transparent">
- "font-size:
medium;" >packagedb.xyz.DrawBoardTool; -
- import
java.awt.BorderLayout; - import
java.awt.Color; - import
java.awt.Dimension; - import
java.awt.FlowLayout; - import
javax.swing.ImageIcon; - import
javax.swing.JButton; - import
javax.swing.JPanel; -
- import
db.xyz.Listener.DrawListener; - import
db.xyz.Listener.HelpListener; -
-
-
- public
class DrawBoardTool extendsJPanel{ -
DrawListener dListener; -