补充上篇《我的仿XP画板初期》
由于所谓的不稳定,在多次努力后,已经没有多少耐性在这里这样耗体力不挣营养地继续折腾,但是上篇依然缺少部分代码,现补上:
我的画板入口:
public class MyDrawBoard {public static void main(String[] args) {new MyDrawBoard().init();}public void init() { final ListImp<Shape> list = new ListImp<Shape>();JFrame drawBoard = new JFrame();new InitDrawBoard(drawBoard, "画图板", list);}}?
?窗体属性设置:
?
?
public class InitDrawBoard {JFrame drawBoard;ListImp<Shape> list;/** * 初始化面板 */public InitDrawBoard(JFrame drawBoard,String str,final ListImp<Shape> list) {this.drawBoard=drawBoard;this.list= list;// 设置窗体属性drawBoard.setTitle(str);drawBoard.setLocation(400,200);drawBoard.setSize(600, 480);drawBoard.setDefaultCloseOperation(3);BorderLayout bl =new BorderLayout(); drawBoard.setLayout(bl);//创建菜单栏menuBar,并添加到窗体上JMenuBar menuBar = new JMenuBar();menuBar.setPreferredSize(new Dimension(600, 30));new InitMenuBar(menuBar);drawBoard.add(menuBar,BorderLayout.NORTH);// 创建绘制选项面板drawTypeToolBar,并添加到窗体上JToolBar drawTypeToolBar = new JToolBar();drawTypeToolBar.setPreferredSize(new Dimension(95, 300));//绘制选项数组javax.swing.JRadioButton[] radioButton=new javax.swing.JRadioButton[16];//绘制选项名称数组String[] buttonName=new String[16];for(int i=0;i<buttonName.length;i++){buttonName[i]="draw"+i;}// 创建单选键组 创建单选键 并添加到单选键组中和面板jpanel2上javax.swing.ButtonGroup typeGroup = new javax.swing.ButtonGroup();new InitDrawType(drawTypeToolBar,typeGroup,buttonName,radioButton);drawBoard.add(drawTypeToolBar,BorderLayout.WEST);// 创建绘图区域面板drawAreaPanel,并添加到窗体上JPanel drawAreaPanel = new JPanel(){/** * 图形重绘 重写父类paint方法 将自己的图形数据传给重绘方法,进行重绘 * * @param g * 画布 * */private static final long serialVersionUID = 1L;public void paint(Graphics g) {super.paint(g);// 遍历for (int i = 0; i < list.size(); i++) {Shape shape = list.get(i);shape.draw(g);}}};drawAreaPanel.setPreferredSize(new Dimension(550, 350));new InitDrawArea(drawAreaPanel);drawBoard.add(drawAreaPanel,BorderLayout.CENTER);//创建颜色面板JToolBar colorToolBar = new JToolBar();JLabel lbColorDraw = new JLabel();JLabel lbColorFill = new JLabel();new InitColorToolBar(colorToolBar,lbColorDraw,lbColorFill);colorToolBar.setPreferredSize(new Dimension(600,80));drawBoard.add(colorToolBar,BorderLayout.SOUTH);// 设置可见drawBoard.setVisible(true);// drawAreaPanel获得画布java.awt.Graphics g = drawAreaPanel.getGraphics();// 创建鼠标监听器,加到drawAreaPanel面板上DrawAreaLis moulis = new DrawAreaLis(g,typeGroup, buttonName, drawAreaPanel,list,lbColorDraw,lbColorFill,radioButton);drawAreaPanel.addMouseListener(moulis);drawAreaPanel.addMouseMotionListener(moulis);}}?