主函数,Test类
package DrawBoard2;
public class Test {
public static void main(String[] args){
DrawBoard db = new DrawBoard();
db.initFrame();
}
}
DrawBoard类
package DrawBoard2;
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class DrawBoard extends JFrame {
Graphics2D g;
public void initFrame(){
this.setSize(800,600);//窗体大小
this.setDefaultCloseOperation(3);//关闭后立即停止运行
this.setLocationRelativeTo(null);//窗体居中
this.setTitle("画板");//窗体标题
//边框布局
this.setLayout(new BorderLayout());
PanelLeft panelLeft = new PanelLeft(g);//创建左边面板
PanelCenter panelCenter = new PanelCenter();//创建中间面板
PanelDown panelDown= new PanelDown(g,panelLeft);//创建下边面板
this.add(panelLeft,BorderLayout.WEST);
this.add(panelCenter,BorderLayout.CENTER);
this.add(panelDown,BorderLayout.SOUTH);
panelLeft.click();//调用左边面板的方法
panelDown.clickColor();//调用下边面板的方法
//画板可见
this.setVisible(true);
g =(Graphics2D) panelCenter.getGraphics();//中间面板取画笔,并将画笔强制转型成子类
panelLeft.g = g;//画笔传递
panelDown.g = g;
DrawListener mouse = new DrawListener(g,panelLeft);//添加两个鼠标行为的监听器
panelCenter.addMouseListener(mouse);
panelCenter.addMouseMotionListener(mouse);
}
}
左边面板PanelLeft类
package DrawBoard2;
imp