📄 toolpanel.java
字号:
pnStroke.setVisible(false);
pnSquare.setVisible(false);
paintModePanel.setVisible(false);
if ("move".equals(s) || "getcolor".equals(s)) {
welcomePanel.setVisible(true);
}
else if("colorfill".equals(s)){
paintModePanel.setVisible(true);
}else if ("pencil".equals(s) || "line".equals(s)) {
pnStroke.setVisible(true);
} else {
if (s.startsWith("fill")) {
paintModePanel.setVisible(true);
if ("fillrect".equals(s)) {
pnSquare.setType(BaseObject.RECTANGLE);
} else if ("fillroundrect".equals(s)) {
pnSquare.setType(BaseObject.ROUNDRECT);
} else if ("filloval".equals(s)) {
pnSquare.setType(BaseObject.OVAL);
}
pnSquare.setVisible(true);
}
else if("rotate".equals(s)){
}
else if("erase".equals(s)){
}else {
pnStroke.setVisible(true);
if ("rect".equals(s)) {
pnSquare.setType(BaseObject.RECTANGLE);
} else if ("roundrect".equals(s)) {
pnSquare.setType(BaseObject.ROUNDRECT);
} else if ("oval".equals(s)) {
pnSquare.setType(BaseObject.OVAL);
}
pnSquare.setVisible(true);
}
}
}
}
//选择画笔粗细的Panel
class StrokePanel extends JPanel {
private int length;
private int size;
private float stroke;
public StrokePanel(int l) {
stroke=1.0f;
length=l;
size=12;
setSize(50,l*12+6);
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int y=e.getY()-4;
y/=size;
y++;
setStroke((float)y);
Container c=getParent().getParent();
if (c instanceof ToolPanel) {
ToolPanel t=(ToolPanel)c;
t.setStroke((float)y);
}
}
});
}
public void setStroke(float f) {
if (f>(float)length) f=(float)length;
stroke=f;
repaint();
}
public float getStrok() {
return stroke;
}
public void paint(Graphics g) {
super.paint(g);
int w=getWidth()-1;
int h=getHeight()-1;
g.setColor(Color.GRAY);
g.drawLine(0,0,w,0);
g.drawLine(0,0,0,h);
g.setColor(Color.WHITE);
g.drawLine(0,h,w,h);
g.drawLine(w,0,w,h);
int is=(int)stroke;
if (is>length) is=length;
is--;
g.setColor(new Color(0x33,0x99,0xff));
g.fillRect(3,is*size+3,w-5,size-1);
g.setColor(Color.BLACK);
for (int i=0; i<length; i++) {
if (is==i) g.setColor(Color.WHITE);
for (int j=0; j<=i; j++) {
int y=(int)(i*(size-0.5))+j+8;
g.drawLine(5,y,w-7,y);
}
if (is==i) g.setColor(Color.BLACK);
}
}
}
//选择是否是正二维图形的Panel
class SquarePanel extends JPanel {
private boolean isSquare;
private int type;
public SquarePanel(int l) {
type=BaseObject.RECTANGLE;
isSquare=false;
setSize(50,64);
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int y=e.getY();
if (y>=4&&y<32)
setSquare(false);
else if (y>32&&y<=60)
setSquare(true);
Container c=getParent().getParent();
if (c instanceof ToolPanel) {
ToolPanel t=(ToolPanel)c;
t.setSquare(isSquare);
}
}
});
}
public void setType(int i) {
type=i;
repaint();
}
public void setSquare(boolean square) {
isSquare=square;
repaint();
}
public void paint(Graphics g) {
super.paint(g);
int w=getWidth()-1;
int h=getHeight()-1;
g.setColor(Color.GRAY);
g.drawLine(0,0,w,0);
g.drawLine(0,0,0,h);
g.setColor(Color.WHITE);
g.drawLine(0,h,w,h);
g.drawLine(w,0,w,h);
int is=0;
if (isSquare)
is=1;
g.setColor(new Color(0x33,0x99,0xff));
g.fillRect(3,is*28+3,w-5,28);
if (is==0) {
g.setColor(Color.WHITE);
if (type==BaseObject.RECTANGLE)
g.drawRect((w-36)/2,7,36,18);
else if (type==BaseObject.ROUNDRECT)
g.drawRoundRect((w-36)/2,7,36,18,8,8);
else if (type==BaseObject.OVAL)
g.drawOval((w-36)/2,7,36,18);
g.setColor(Color.BLACK);
if (type==BaseObject.RECTANGLE)
g.drawRect((w-18)/2,35,18,18);
else if (type==BaseObject.ROUNDRECT)
g.drawRoundRect((w-18)/2,35,18,18,8,8);
else if (type==BaseObject.OVAL)
g.drawOval((w-18)/2,35,18,18);
} else {
g.setColor(Color.BLACK);
if (type==BaseObject.RECTANGLE)
g.drawRect((w-36)/2,7,36,18);
else if (type==BaseObject.ROUNDRECT)
g.drawRoundRect((w-36)/2,7,36,18,8,8);
else if (type==BaseObject.OVAL)
g.drawOval((w-36)/2,7,36,18);
g.setColor(Color.WHITE);
if (type==BaseObject.RECTANGLE)
g.drawRect((w-18)/2,35,18,18);
else if (type==BaseObject.ROUNDRECT)
g.drawRoundRect((w-18)/2,35,18,18,8,8);
else if (type==BaseObject.OVAL)
g.drawOval((w-18)/2,35,18,18);
}
}
}
//欢迎提示的Panel
class WelcomePanel extends JPanel {
public WelcomePanel() {
/*JLabel lbl1=new JLabel("按Ctrl再");
JLabel lbl2=new JLabel("点击鼠标");
JLabel lbl3=new JLabel("会有彩蛋");
JLabel lbl4=new JLabel("哦~~");
setLayout(new GridLayout(0,1));
setSize(50,75);
add(lbl1);
add(lbl2);
add(lbl3);
add(lbl4);*/
}
public void paint(Graphics g) {
super.paint(g);
int w=getWidth()-1;
int h=getHeight()-1;
g.setColor(Color.GRAY);
g.drawLine(0,0,w,0);
g.drawLine(0,0,0,h);
g.setColor(Color.WHITE);
g.drawLine(0,h,w,h);
g.drawLine(w,0,w,h);
}
}
//选择填充方式的Panel
class PaintModePanel extends JPanel {
private int type; //0-标准填充, 1-水平渐变, 2-垂直渐变, 3-对角渐变
private Color c1,c2;
public PaintModePanel() {
type=0;
setSize(50,132);
c1=Color.BLACK;
c2=Color.WHITE;
addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int x=e.getX();
int y=e.getY();
type=0;
type=(y/25);
if (type>4)
type=4;
setPaintMode(type);
Container c=getParent().getParent();
if (c instanceof ToolPanel) {
ToolPanel tp=(ToolPanel)c;
tp.setPaintMode(type);
}
}
});
}
public void setPaintMode(int i) {
type=i;
repaint();
}
public void changeColor(Color t1,Color t2) {
if (t1!=null&&t2!=null) {
c1=t1;
c2=t2;
repaint();
}
}
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d=(Graphics2D)g;
//g2d.setTransform(new AffineTransform());
int w=getWidth()-1;
int h=getHeight()-1;
g2d.setColor(Color.GRAY);
g2d.drawLine(0,0,w,0);
g2d.drawLine(0,0,0,h);
g2d.setColor(Color.WHITE);
g2d.drawLine(0,h,w,h);
g2d.drawLine(w,0,w,h);
g2d.setColor(new Color(0x33,0x99,0xff));
g2d.fillRect(3,type*22+3+type*3,46,28);
g2d.setColor(c1);
g2d.fillRect(6,6,40,22);
g2d.setColor(Color.GRAY);
g2d.fillRect(6, 106, 40, 22);
g2d.setColor(Color.WHITE);
g2d.drawString(" 手 动", 6, 120);
g2d.setPaint(new GradientPaint(new Point(6,31),c1,new Point(46,31),c2));
g2d.fillRect(6,31,40,22);
g2d.setPaint(new GradientPaint(new Point(6,56),c1,new Point(6,78),c2));
g2d.fillRect(6,56,40,22);
g2d.setPaint(new GradientPaint(new Point(6,81),c1,new Point(46,103),c2));
g2d.fillRect(6,81,40,22);
//repaint();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -