java画板项目总结

具体如下:

 

package Simple_Draw;

public class Draw {
	public static void main(String[] args) {
		DrawPanel dp = new DrawPanel();
		dp.initJFrame();
	}
}

 

package Simple_Draw;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.util.ArrayList;

import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.border.BevelBorder;

public class DrawPanel extends JFrame{
	public Graphics g;
	private ButtonGroup bg;
	public ArrayList al = new ArrayList();
	public void initJFrame(){
		this.setTitle("画板");
		this.setSize(600, 500);
		this.setDefaultCloseOperation(3);
		this.setLocationRelativeTo(null);
		this.Panelleft();
		this.Panelbotton();
		JPanel panelmiddle = this.Panelmiddle();
		this.Menu();
		this.setVisible(true);
		g = panelmiddle.getGraphics();
		PanelMiddleListener pml = new PanelMiddleListener(bg,g,al);
		panelmiddle.addMouseListener(pml);
		panelmiddle.addMouseMotionListener(pml);
		}
	}


如上具体思路就是首先主函数入口,为了不让主函数显得复杂化,创建了DrawPanel类的对象,然后调用initJFrame这个方法,由于这个类继承了JFrame窗体类,所以就可以设置窗体布局,总分为三个面板,分为三个方法写,然后再在initJFrame调用三个面板,具体,请结合看:

 

 

public void Panelleft(){
		JPanel panelleft = new JPanel();
		panelleft.setPreferredSize(new Dimension(78,0));
		panelleft.setBackground(new Color(240,240,240));
		this.add(panelleft,BorderLayout.WEST);
		panelleft.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));
		String [] command ={"wujiao","xuxian","xiangcha","oil","getcolor","biggle","pencil","brush","pentong","font","line","quxian","rect","duobian","oval","ovalrect"};
		bg = new ButtonGroup();
		for(int i=0;i

 

 

 

public void Panelbotton(){
		JPanel panelbotton = new JPanel();
		panelbotton.setPreferredSize(new Dimension(0,80));
		panelbotton.setBackground(new Color(240,240,240));
		this.add(panelbotton,BorderLayout.SOUTH);
		panelbotton.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));
		
		JPanel panelInner = new JPanel();
		panelInner.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));
		panelInner.setPreferredSize(new Dimension(300,50));
		panelbotton.add(panelInner,FlowLayout.LEFT);
		
		JPanel panelInnerleft = new JPanel();
		JPanel panelInnerright = new JPanel();
		panelInnerleft.setBackground(Color.black);
		panelInnerright.setBackground(Color.red);
		panelInnerleft.setPreferredSize(new Dimension(50,50));
		panelInnerright.setPreferredSize(new Dimension(250,50));
		panelInnerright.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));
		panelInner.add(panelInnerleft);
		panelInner.add(panelInnerright);
		
		Color [] color={Color.black,Color.yellow,Color.green,Color.red,Color.blue,Color.darkGray,Color.orange,Color.pink,Color.cyan,Color.lightGray,Color.black,Color.yellow,Color.green,Color.red,Color.blue,Color.darkGray,Color.orange,Color.pink,Color.cyan,Color.lightGray};
		ButtonListener bl = new ButtonListener(this);
		for(int i=0;i

 

三个方法分别是左中下面板,左边面板设置了按钮,在按钮上添加了图片,上面代码就是下面板设置了按钮颜色以及对其方式,要在中间面板画出想要的图形,就需要在中间面板上得到画笔,然后还需要鼠标监听器才能画出,这需要创建一个新的类,然后重写这个类,把需要的属性传递过去,以上就是画板基本界面了;

 

 

接下来就监听器的设置,还有重绘,不做概述了;

你可能感兴趣的:(java)