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

📄 toolpanel.java

📁 基于java Swing的一款简单的2D图形绘制软件程序
💻 JAVA
字号:
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.Shape;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.BorderFactory;
import javax.swing.JPanel;
/**
 * 
 */

/**
 * @author squirrel
 *
 */
public class ToolPanel extends JPanel {

	private JPanel drawPanel;
	private JPanel zoomPanel;
	
	private Button penButton;
	private Button paintButton;
	private Button zoomInButton;
	private Button zoomOutButton;
	
	private FigurePanel figurePanel;
	private ScreenCanvas screenCanvas;
	private ImageEditPanel editPanel;
	
	public ToolPanel()
	{
		super();
		this.setLayout(new GridLayout(2,1,1,1));
		penButton= new Button("画笔");
		paintButton = new Button("填充");
		zoomInButton = new Button("放大");
		zoomOutButton = new Button("缩小");
		
		penButton.setBackground(Color.LIGHT_GRAY);
		paintButton.setBackground(Color.WHITE);
		zoomInButton.setBackground(Color.WHITE);
		zoomOutButton.setBackground(Color.WHITE);
		
		drawPanel = new JPanel();
		drawPanel.setLayout(new GridLayout(2,1,1,1));
		drawPanel.setBorder(BorderFactory.createTitledBorder("绘图工具"));
		
		drawPanel.add(penButton);
		drawPanel.add(paintButton);
		
		zoomPanel = new JPanel();
		zoomPanel.setLayout(new GridLayout(2,1,1,1));
		zoomPanel.add(zoomInButton);
		zoomPanel.add(zoomOutButton);
		zoomPanel.setBorder(BorderFactory.createTitledBorder("缩放工具"));
		
		this.add(drawPanel);
		this.add(zoomPanel);
		this.setBackground(Color.LIGHT_GRAY);
		
		
		penButton.addActionListener(new ButtonActionListener());
		paintButton.addActionListener(new ButtonActionListener());
		zoomInButton.addActionListener(new ButtonActionListener());
		zoomOutButton.addActionListener(new ButtonActionListener());
	}

	public FigurePanel getFigurePanel() {
		return figurePanel;
	}

	public void setFigurePanel(FigurePanel figurePanel) {
		this.figurePanel = figurePanel;
	}

	public Button getPaintButton() {
		return paintButton;
	}

	public void setPaintButton(Button paintButton) {
		this.paintButton = paintButton;
	}

	public Button getPenButton() {
		return penButton;
	}

	public void setPenButton(Button penButton) {
		this.penButton = penButton;
	}

	public ScreenCanvas getScreenPanel() {
		return screenCanvas;
	}

	public void setScreenPanel(ScreenCanvas screenCanvas) {
		this.screenCanvas = screenCanvas;
	}

	public Button getZoomInButton() {
		return zoomInButton;
	}

	public void setZoomInButton(Button zoomInButton) {
		this.zoomInButton = zoomInButton;
	}

	public Button getZoomOutButton() {
		return zoomOutButton;
	}

	public void setZoomOutButton(Button zoomOutButton) {
		this.zoomOutButton = zoomOutButton;
	}
	
	
	private class ButtonActionListener implements ActionListener
	{

		public void zoom(int io)
		{
			if(io == 0)
				return;
			
			int resize = screenCanvas.getResize() + io;
			
			List shapeList = screenCanvas.getShapeList();
			List newShapeList = new ArrayList();
			
			GraphicsZoomer zoomer = new GraphicsZoomer();
			
			for(int i = 0; i < shapeList.size(); i++)
			{
				ShapeEntity entity = (ShapeEntity)shapeList.get(i);
				if(entity.getShapeType() == 0)
				{
					newShapeList.add(entity);
					continue;
				}
			    zoomer.zoom(entity, io);
			    newShapeList.add(entity);
			}
			
			screenCanvas.setResize(resize);
			screenCanvas.getShapeList().clear();
			 for(int i = 0; i < newShapeList.size(); i++)
			{
				ShapeEntity object = (ShapeEntity)newShapeList.get(i);
				screenCanvas.addShape(object);
			}
			screenCanvas.repaint();
		}
		
		public void actionPerformed(ActionEvent e) {
			Object source = e.getSource();
			
			int io = 0 - screenCanvas.getResize();
			
			if(source.equals(penButton))
			{
				screenCanvas.setDrawToolType(0);
				penButton.setBackground(Color.LIGHT_GRAY);
				paintButton.setBackground(Color.WHITE);
				zoomInButton.setBackground(Color.WHITE);
				zoomOutButton.setBackground(Color.WHITE);
				zoom(io);
				
			}
			else if(source.equals(paintButton))
			{
				screenCanvas.setDrawToolType(1);
				paintButton.setBackground(Color.LIGHT_GRAY);
				penButton.setBackground(Color.WHITE);
				zoomInButton.setBackground(Color.WHITE);
				zoomOutButton.setBackground(Color.WHITE);
				zoom(io);
			}
			else if(source.equals(zoomInButton))
			{
				if(screenCanvas.getResize() < 5)
				{
					zoom(1);
					screenCanvas.setDrawToolType(-1);
					if(screenCanvas.getResize() == 0)
					{
						zoomInButton.setBackground(Color.WHITE);
						zoomOutButton.setBackground(Color.WHITE);
					}
					else
					{
						zoomInButton.setBackground(Color.LIGHT_GRAY);
						zoomOutButton.setBackground(Color.WHITE);
					}
					
				}
				penButton.setBackground(Color.WHITE);
				paintButton.setBackground(Color.WHITE);
			}
			else if(source.equals(zoomOutButton))
			{
				if(screenCanvas.getResize() >= 0)
				{
					zoom(-1);
					screenCanvas.setDrawToolType(-1);
					if(screenCanvas.getResize() == 0)
					{
						zoomInButton.setBackground(Color.WHITE);
						zoomOutButton.setBackground(Color.WHITE);
					}
					else
					{
						zoomOutButton.setBackground(Color.LIGHT_GRAY);
						zoomInButton.setBackground(Color.WHITE);
					}
				}
				penButton.setBackground(Color.WHITE);
				paintButton.setBackground(Color.WHITE);
			}
			
		}
		
	}


	public void setDrawPanel(JPanel drawPanel) {
		this.drawPanel = drawPanel;
	}

	public void setEditPanel(ImageEditPanel editPanel) {
		this.editPanel = editPanel;
	}

	public void setZoomPanel(JPanel zoomPanel) {
		this.zoomPanel = zoomPanel;
	}	
}

⌨️ 快捷键说明

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