⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mousegraphics.java

📁 说明在java压缩包中
💻 JAVA
字号:
import java.lang.*;
import java.awt.*;
import java.awt.geom.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class MouseGraphics implements ActionListener,ItemListener,MouseMotionListener,MouseListener
{
	private Frame frame;
	private Panel panelMain,panel;
	private MenuBar mb;
	private Menu m1,m2;
	private MenuItem Clear,Painter,Quit;
	private CheckboxGroup cbg;
	private Checkbox Red,Yellow,Green,Blue,Black;
	private Canvas canvas;
	private Color color = Color.black;
	private Graphics graphics;
	private Dimension screenSize;
	private Dimension frameSize;
	private float size=1;
	private int x=0,y=0,rx=0,ry=0;
	private boolean isPaint = false,isDragged = false;

	public MouseGraphics()
	{
		frame = new Frame("MouseGraphics");
		mb = new MenuBar();
		frame.setMenuBar(mb);
		m1 = new Menu("File");
		mb.add(m1);
		Clear = new MenuItem("Clear");
		Painter = new MenuItem("Paint");
		Quit = new MenuItem("Quit");
		m1.add(Clear);
		m1.add(Painter);
		m1.addSeparator();
		m1.add(Quit);
		Clear.addActionListener(this);
		Painter.addActionListener(this);
		Quit.addActionListener(this);

		panelMain = new Panel();
		frame.add(panelMain);
		panelMain.setLayout(new BorderLayout());

		canvas = new Canvas();
		canvas.setSize(500,350);
		panelMain.add(canvas,BorderLayout.CENTER);

		panel = new Panel();
		panelMain.add(panel,BorderLayout.SOUTH);
		panel.setLayout(new FlowLayout(FlowLayout.LEFT));
		panel.setBackground(new Color(240,238,228));

		cbg = new CheckboxGroup();
		Red = new Checkbox("Red", cbg, false);
		Yellow = new Checkbox("Yellow", cbg, false);
		Green = new Checkbox("Green", cbg, false);
		Blue = new Checkbox("Blue", cbg, false);
		Black = new Checkbox("Black", cbg, true);

		panel.add(Red);
		panel.add(Yellow);
		panel.add(Green);
		panel.add(Blue);
		panel.add(Black);

	 	Red.addItemListener(this);
	 	Yellow.addItemListener(this);
	 	Green.addItemListener(this);
		Blue.addItemListener(this);
		Black.addItemListener(this);

		canvas.addMouseMotionListener(this);
		canvas.addMouseListener(this);
		graphics = canvas.getGraphics();

		screenSize = Toolkit.getDefaultToolkit().getScreenSize();
		frame.setResizable(false);
		frame.setSize(500,350);
		frameSize = frame.getSize();
		frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
		frame.show();
		frame.addWindowListener(new WindowAdapter(){
		public void windowClosing(WindowEvent e)
			{
				System.exit(0);
			}
		});
	}

	public void actionPerformed(ActionEvent event)
	{
		Object cmd = event.getSource();
        try
        {
        	if(cmd == Clear)
        	{
				canvas.update(graphics);
				isPaint = false;
        	}
        	else if(cmd == Painter)
        	{
        		isPaint = true;
        	}
	        else if(cmd == Quit)
	        {
	        	System.exit(0);
	        }
	    }
	    catch(Exception  e)
	    {}
	}

	public void itemStateChanged(ItemEvent e)
	{
		if(e.getItemSelectable() == Red)
			color = Color.red;
		else if(e.getItemSelectable() == Yellow)
			color = Color.yellow;
		else if(e.getItemSelectable() == Green)
			color = Color.green;
		else if(e.getItemSelectable() == Blue)
			color = Color.blue;
		else if(e.getItemSelectable() == Black)
			color = Color.black;
	}

	public void drawGraphics()
	{
		graphics = canvas.getGraphics();
		Graphics2D  g2d  =  (Graphics2D)graphics;
        BasicStroke  stokeLine  =  new  BasicStroke(size); 
        g2d.setStroke(stokeLine);
		g2d.setColor(color); 
		g2d.drawLine(rx,ry,x,y);
	}

	public void mouseDragged(MouseEvent e)
	{
		isDragged = true;
		rx = x;
		ry = y;
		x = (int)e.getX();
		y = (int)e.getY();

		if(isPaint)
		{
			drawGraphics();
		}
	}

	public void mouseMoved(MouseEvent e)
	{
		rx = x = (int)e.getX();
		ry = y = (int)e.getY();
	}

    public void	mousePressed(MouseEvent e)
	{
		if(isDragged == false)
		{
			rx = x = (int)e.getX();
			ry = y = (int)e.getY();
		}
	}

	public void	mouseReleased(MouseEvent e)	{}
	public void	mouseClicked(MouseEvent e) {}
	public void mouseEntered (MouseEvent me) {}
	public void mouseExited (MouseEvent me) {}
	
	public static void main(String args[])
	{
    	new MouseGraphics();
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -