📄 toolpanel.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 + -