📄 dauber.java
字号:
import java.awt.Graphics;
import java.awt.*;
import java.awt.event.*;
import java.lang.Math;
import java.applet.Applet;
public class dauber extends Applet implements ActionListener, MouseListener, MouseMotionListener {
Button buttonDraw, buttonLine, buttonOval, buttonRect, button3DRect;
Button buttonRounded;
Point pts[] = new Point[1000];
Point ptAnchor, ptDrawTo;
int ptindex = 0;
boolean bMouseDownFlag = false;
boolean bMouseUpFlag = false;
boolean bDrawFlag = false;
boolean bLineFlag = false;
boolean bOvalFlag = false;
boolean bRectFlag = false;
boolean b3DRectFlag = false;
boolean bRoundedFlag = false;
public void init() {
buttonDraw = new Button("Draw Freehand");
buttonLine = new Button("Line");
buttonOval = new Button("Oval");
buttonRect = new Button("Rect");
button3DRect = new Button("3D Rect");
buttonRounded = new Button("Round");
add(buttonDraw);
buttonDraw.addActionListener(this);
add(buttonLine);
buttonLine.addActionListener(this);
add(buttonOval);
buttonOval.addActionListener(this);
add(buttonRect);
buttonRect.addActionListener(this);
add(button3DRect);
button3DRect.addActionListener(this);
add(buttonRounded);
buttonRounded.addActionListener(this);
addMouseListener(this);
addMouseMotionListener(this);
}
public void mousePressed(MouseEvent e){
bMouseDownFlag = true;
bMouseUpFlag = false;
ptAnchor = new Point(e.getX(), e.getY());
}
public void mouseReleased(MouseEvent e){
bMouseDownFlag = false;
bMouseUpFlag = true;
ptDrawTo = new Point(e.getX(), e.getY());
if(!bLineFlag){
ptDrawTo = new Point(Math.max(e.getX(), ptAnchor.x), Math.max(e.getY(), ptAnchor.y));
ptAnchor = new Point(Math.min(e.getX(), ptAnchor.x), Math.min(e.getY(), ptAnchor.y));
}
repaint();
}
public void mouseDragged(MouseEvent e){
if(bDrawFlag){
pts[ptindex] = new Point(e.getX(), e.getY());
ptindex++;
repaint();
}
}
public void mouseClicked(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mouseMoved(MouseEvent e){
}
public void paint (Graphics g) {
int loop_index;
int drawWidth, drawHeight;
if(bLineFlag && bMouseUpFlag){
g.drawLine(ptAnchor.x, ptAnchor.y, ptDrawTo.x,
ptDrawTo.y);
}
if(bOvalFlag && bMouseUpFlag){
drawWidth = ptDrawTo.x - ptAnchor.x;
drawHeight = ptDrawTo.y - ptAnchor.y;
g.drawOval(ptAnchor.x, ptAnchor.y, drawWidth,
drawHeight);
}
if(bRectFlag && bMouseUpFlag){
drawWidth = ptDrawTo.x - ptAnchor.x;
drawHeight = ptDrawTo.y - ptAnchor.y;
g.drawRect(ptAnchor.x, ptAnchor.y, drawWidth,
drawHeight);
}
if(b3DRectFlag && bMouseUpFlag){
drawWidth = ptDrawTo.x - ptAnchor.x;
drawHeight = ptDrawTo.y - ptAnchor.y;
g.draw3DRect(ptAnchor.x, ptAnchor.y, drawWidth,
drawHeight, true);
}
if(bRoundedFlag && bMouseUpFlag){
drawWidth = ptDrawTo.x - ptAnchor.x;
drawHeight = ptDrawTo.y - ptAnchor.y;
g.drawRoundRect(ptAnchor.x, ptAnchor.y, drawWidth,
drawHeight, 10, 10);
}
if(bDrawFlag){
for(loop_index = 0; loop_index < ptindex - 1; loop_index++){
g.drawLine(pts[loop_index].x, pts[loop_index].y,
pts[loop_index + 1].x, pts[loop_index + 1].y);
}
}
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == buttonDraw){
bDrawFlag = !bDrawFlag;
bLineFlag = false;
bOvalFlag = false;
bRectFlag = false;
b3DRectFlag = false;
bRoundedFlag = false;
}
if(e.getSource() == buttonLine){
bLineFlag = !bLineFlag;
bDrawFlag = false;
bOvalFlag = false;
bRectFlag = false;
b3DRectFlag = false;
bRoundedFlag = false;
}
if(e.getSource() == buttonOval){
bOvalFlag = !bOvalFlag;
bLineFlag = false;
bDrawFlag = false;
bRectFlag = false;
b3DRectFlag = false;
bRoundedFlag = false;
}
if(e.getSource() == buttonRect){
bRectFlag = !bRectFlag;
bLineFlag = false;
bOvalFlag = false;
bDrawFlag = false;
b3DRectFlag = false;
bRoundedFlag = false;
}
if(e.getSource() == button3DRect){
b3DRectFlag = !b3DRectFlag;
bLineFlag = false;
bOvalFlag = false;
bRectFlag = false;
bDrawFlag = false;
bRoundedFlag = false;
}
if(e.getSource() == buttonRounded){
bRoundedFlag = !bRoundedFlag;
bLineFlag = false;
bOvalFlag = false;
bRectFlag = false;
b3DRectFlag = false;
bDrawFlag = false;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -