使用 class 点在 java 自由手绘
free hand drawing in java using class Point
我正在尝试使用 Point class 和 arraylist 在 java 中编写一个简单的自由手绘代码,但我被卡住了。首先,不能真正离开原点,其次,即使不拖动鼠标,两点之间也总是画一条线。
public class FreeDraw extends Applet implements MouseMotionListener
{
int x,y,m,n;
ArrayList<Point> al;
public void init()
{
al = new ArrayList<>();
this.addMouseMotionListener(this);
}
public void paint(Graphics g)
{
for(int i=0;i<al.size();i++)
{
m=al.get(i).x;
n=al.get(i).y;
g.drawLine(m,n,x,y);
x=m;
y=n;
}
}
public void mouseDragged(MouseEvent e)
{
al.add(new Point(e.getX(),e.getY()));
repaint();
}
public void mouseMoved(MouseEvent e)
{
//do nothing
}
}
您需要播种初始 x/y 位置(否则 m
和 n
将 0x0
到第一个点)
类似...
@Override
public void paint(Graphics g) {
super.paint(g);
if (!al.isEmpty()) {
int x = al.get(0).x;
int y = al.get(0).y;
for (int i = 1; i < al.size(); i++) {
m = al.get(i).x;
n = al.get(i).y;
g.drawLine(m, n, x, y);
x = m;
y = n;
}
}
}
例如
除了Applet
在大约16年前被JApplet
取代之外,小程序插件不再被Oracle支持,但大多数浏览器都主动阻止它,使其成为一个死胡同技术。
有关详细信息,请参阅 Java Plugin support deprecated and Moving to a Plugin-Free Web
我正在尝试使用 Point class 和 arraylist 在 java 中编写一个简单的自由手绘代码,但我被卡住了。首先,不能真正离开原点,其次,即使不拖动鼠标,两点之间也总是画一条线。
public class FreeDraw extends Applet implements MouseMotionListener
{
int x,y,m,n;
ArrayList<Point> al;
public void init()
{
al = new ArrayList<>();
this.addMouseMotionListener(this);
}
public void paint(Graphics g)
{
for(int i=0;i<al.size();i++)
{
m=al.get(i).x;
n=al.get(i).y;
g.drawLine(m,n,x,y);
x=m;
y=n;
}
}
public void mouseDragged(MouseEvent e)
{
al.add(new Point(e.getX(),e.getY()));
repaint();
}
public void mouseMoved(MouseEvent e)
{
//do nothing
}
}
您需要播种初始 x/y 位置(否则 m
和 n
将 0x0
到第一个点)
类似...
@Override
public void paint(Graphics g) {
super.paint(g);
if (!al.isEmpty()) {
int x = al.get(0).x;
int y = al.get(0).y;
for (int i = 1; i < al.size(); i++) {
m = al.get(i).x;
n = al.get(i).y;
g.drawLine(m, n, x, y);
x = m;
y = n;
}
}
}
例如
除了Applet
在大约16年前被JApplet
取代之外,小程序插件不再被Oracle支持,但大多数浏览器都主动阻止它,使其成为一个死胡同技术。
有关详细信息,请参阅 Java Plugin support deprecated and Moving to a Plugin-Free Web