📄 toolpanel.java
字号:
//ToolPanel.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* ToolKit
* @author
* @version 1.0 05/24/03
*/
/*
interface WidgeMediator
{
void widgeChanged(Component widge);
}
//*/
class ToolButton extends JToggleButton
{
private Tool tool;
public ToolButton( Icon icon, Tool t) {
super(icon, false);
tool = t;
}
public Tool getTool() {return tool;}
}
class ToolPanel extends JToolBar implements ItemListener
{
private WidgeMediator mediator;
private Color c = Color.black;
private Tool curTool;
private ButtonGroup toolGrp = new ButtonGroup();
private String sizes[] = {"5","10","15","20"};
private JComboBox sizeBox = new JComboBox(sizes);
private Component cp;
private int size = 5;
public ToolPanel(WidgeMediator m, Component cp) {
super(SwingConstants.VERTICAL);
this.cp = cp;
mediator = m;
ToolButton tools[] ={
new ToolButton(new ImageIcon("res/pen.gif"), new PenTool(c)),
new ToolButton(new ImageIcon("res/line.gif"), new NormalTool(new Line(c))),
new ToolButton(new ImageIcon("res/brush.gif"), new BrushTool(c,size)),
new ToolButton(new ImageIcon("res/rect.gif"), new NormalTool(new Rect(c))),
new ToolButton(new ImageIcon("res/fillrect.gif"), new NormalTool(new FillRect(c))),
new ToolButton(new ImageIcon("res/oval.gif"), new NormalTool(new Oval(c))),
new ToolButton(new ImageIcon("res/filloval.gif"), new NormalTool(new FillOval(c))),
new ToolButton(new ImageIcon("res/spray.gif"), new SprayTool(c,size)),
new ToolButton(new ImageIcon("res/rubber.gif"), new RubberTool(size))
};
setLayout(new GridLayout(15,1));
add(new JLabel(" Draw Tools "));
for(int i=0; i<tools.length; ++i) {
add(tools[i]);
toolGrp.add(tools[i]);
tools[i].addItemListener(this);
}
add(new JLabel("Size"));
add(sizeBox);
sizeBox.addItemListener(this);
curTool = tools[0].getTool();
}
public void setColor(Color c) { curTool.setColor(this.c = c); }
public Tool getTool() {return curTool;}
public void itemStateChanged(ItemEvent e) {
if(e.getSource() == sizeBox) {
size = Integer.parseInt(((String)sizeBox.getSelectedItem()));
curTool.setSize(size);
} else {
curTool = ((ToolButton)e.getSource()).getTool();
curTool.setSize(size);
curTool.setGraphics(cp.getGraphics());
curTool.setColor(c);
mediator.widgeChanged(this);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -