0
我正在實現一個擴展了JPanel的類,並且這個類被添加到一個JTabPane中,並且你可以在繪製程序的區域上繪製東西,但是當繪製一個新的它會加入前面的繪圖點,爲什麼會這樣呢? 並在for循環中有一個-2的arrayList的大小,我可以知道爲什麼它需要?我試圖刪除它,它會導致錯誤。 劃線連接在一起而不是自己的
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.BorderFactory;
import javax.swing.JPanel;
public class STDrawingArea extends JPanel{
/**
*
*/
private static final long serialVersionUID = 1L;
ArrayList<Point> Points = new ArrayList<Point>();
public STDrawingArea()
{
setBorder(BorderFactory.createLineBorder(Color.black));
setBackground(Color.WHITE);
addMouseMotionListener(new MouseAdapter() {
public void mouseDragged(MouseEvent e) {
Points.add(e.getPoint());
System.out.println("Dragged");
repaint();
}
});
}
@Override
public Dimension getPreferredSize() {
return new Dimension(700,600);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
for(int i = 0 ; i < Points.size()-2;i++)
{
Point p1 = Points.get(i);
Point p2 = Points.get(i+1);
g.drawLine(p1.x, p1.y, p2.x, p2.y);
}
}
public void clearDrawings()
{
Points.clear();
repaint();
}
}
什麼是,你能解釋一下檢查? – sutoL 2011-05-18 09:23:46
@kyrouge:抱歉我的英文不好。我的意思是你正在檢查我
Heisenbug
2011-05-18 09:33:17
嘗試過,但它不工作 – sutoL 2011-05-19 03:00:52