В ответ на правки:
Так что я бы в этом случае не использовал графику прямо здесь. Вместо этого я бы сделал что-то вроде этого ... Держите список своих точек, и когда вы нажмете, добавьте точку в свой список. Затем, когда вы рисуете, рисуйте свои очки. (Если вы будете рисовать только при щелчке, вы можете просто сохранить последнюю точку, нарисовать линию между текущей точкой и последней точкой и установить последнюю точку для текущей точки. Но это более расширяемо.)
List<Point> points = new ArrayList<Points>();
public void init() {
addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseMoved(MouseEvent evt) {
storeCoordinates(evt); // graphics removed
}
});
}
public void paint(Graphics g) {
for(int i = 1; i < points.size(); i++) {
Point first = points.get(i - 1);
Point second = points.get(i);
g.setColor(Color.BLUE);
g.drawLine(first.getX(), first.getY(), second.getX(), second.getY());
}
}
public void storeCoordinates(MouseEvent evt) {
int x = evt.getX();
int y = evt.getY();
points.add(new Point(x,y));
}
.
Старый ответ
Передайте ваш графический объект в качестве параметра этому другому методу.
public void paint(Graphics g) {
externalPaint(g);
}
private void externalPaint(Graphics g) {
g.drawLine(1,2,3,4);
}