huaxian.txt
来自「java 实现划线功能 java 实现划线功能」· 文本 代码 · 共 91 行
TXT
91 行
import java.awt.*;
import java.awt.event.*;
public class MyMouseDraw1P extends WindowAdapter{
Frame win;
MyCanvas c;
int x,y;
public MyMouseDraw1P(){
win = new Frame();
x=-1;
y=-1;
c = new MyCanvas();
win.setLayout(new BorderLayout(0,0));
win.add(c, BorderLayout.CENTER);
win.addWindowListener(this);
win.setSize(400,260);
win.setVisible(true);
}
public void windowClosing(WindowEvent e){
System.exit(0);
}
public static void main(String[] args){
MyMouseDraw1P mmd = new MyMouseDraw1P();
}
class MyCanvas extends Canvas implements MouseListener, MouseMotionListener{
private Polygon p;
MyCanvas(){
p = new Polygon();
addMouseListener(this);
addMouseMotionListener(this);
}
public void mouseEntered(MouseEvent e){}
public void mouseExited(MouseEvent e){}
public void mouseClicked(MouseEvent e){}
public void mouseMoved(MouseEvent e){}
public void mousePressed(MouseEvent e){
int mx,my;
Graphics g=c.getGraphics();
mx=e.getX();
my=e.getY();
if(x!=-1) {
g.setColor(Color.blue);
g.drawLine(x, y, mx, my);
}
p.addPoint(mx, my);
x=mx;
y=my;
//repaint();
}
public void mouseReleased(MouseEvent e){
int mx,my;
Graphics g=c.getGraphics();
mx=e.getX();
my=e.getY();
if(x!=-1) {
g.setColor(Color.blue);
g.drawLine(x, y, mx, my);
}
p.addPoint(mx, my);
p.addPoint(-1, -1);
x=-1;
y=-1;
//repaint();
}
public void mouseDragged(MouseEvent e){
int mx,my;
Graphics g=c.getGraphics();
mx=e.getX();
my=e.getY();
if(x!=-1) {
g.setColor(Color.blue);
g.drawLine(x, y, mx, my);
}
p.addPoint(mx, my);
x=mx;
y=my;
//repaint();
}
public void paint(Graphics g){
g.setColor(Color.blue);
for(int i=0; i<p.npoints-1; i++){
if(p.xpoints[i+1]==-1)
i++;
else
g.drawLine(p.xpoints[i], p.ypoints[i], p.xpoints[i+1], p.ypoints[i+1]);
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?