一下代码是用鼠标画线条,有一个缺点就是只能画10条
请问用什么方法可以实现想怎么画都可以?
(更改数组大小除外)
还有这个程序通过cmd来编译不了,但是通过Eclipse又可以编译运行出来!求原因
[code="java"]import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DrawLineTest extends JPanel {
static int i = 0;
int x1[] = new int[10];
int x2[] = new int[10];
int y1[] = new int[10];
int y2[] = new int[10];
public static void main(String[] args) {
JFrame frame = new JFrame();
Container container = frame.getContentPane();
DrawLine line = new DrawLine();
frame.add(line);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setTitle("DrawLineTest");
frame.setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
frame.setLocation(200, 200);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
for (int i = 0; i < x1.length; i++) {
g.drawLine(x1[i], y1[i], x2[i], y2[i]);
}
}
public void DrawLine() {
addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent event) {
x1[i] = event.getX();
y1[i] = event.getY();
}
public void mouseReleased(MouseEvent event) {
Graphics g = getGraphics();
g.setColor(Color.RED);
x2[i] = event.getX();
y2[i] = event.getY();
g.drawLine(x1[i], y1[i], x2[i], y2[i]);
i++;
}
});
}
public static final int DEFAULT_WIDTH = 250;
public static final int DEFAULT_HEIGHT = 250;
}
[/code]
[quote]请问用什么方法可以实现想怎么画都可以?[/quote]
用List。
[quote]这个程序通过cmd来编译不了,但是通过Eclipse又可以编译运行出来[/quote]
那是因为cmd编译时,根据你的classpath设置去找相应的包,但是你没有把必需的包路径加进来,而通过Eclipse可以,那是因为开发工具帮你做了这一步,它会有自己的一个路径,去寻找编译时必要的包,就是你加入包的路径。
你这是刚开始学JAVA么 =。=
ArrayList, cmd编译和eclipse能一样么。。。