(я думаю, что это домашнее задание? Если так, пожалуйста, пометьте его как домашнее задание)
Могу поспорить, что никто не будет ясно знать, что вы подразумеваете под "не правильно рисовать".В любом случае, я вижу одну из проблем.
Могу поспорить, что вы храните только 1 строку.Однако способ хранения и рисования проблематичен.
Вы сохранили координаты, которые «пропустила» мышь, отметив координаты на «виртуальном экране».Однако, когда вы рисуете это на экране, вы не следуете порядку, пройденному мышью.Вместо этого вы рисуете линии в порядке сверху вниз, слева направо, что просто создает беспорядок.
Возможно, вы захотите сохранить список координат, а когда вы рисуете, вы рисуете согласнокоордината.
Псевдокод:
class Coordinate { // there are some class in Java that already does that,
//leave it to you to find out :)
int x;
int y;
}
List<Coordinate> theOnlyLine=....;
public void mouseDragged(MouseEvent m) {
theOnlyLine.add(new Coordinate(m.getX(), m.getY());
}
public void mouseReleased(MouseEvent e) {
theOnlyLine.add(new Coordinate(m.getX(), m.getY());
}
public void paint(Graphics g) {
int prevX = -1;
int prevY = -1;
for (Coordinate coordinate : theOnlyLine) {
if (prevX > 0 && prevY > 0) {
g.drawLine(prevX, prevY, coordinate.getX(), coordinate.getY());
}
prevX = coordinate.getX();
prevY = coordinate.getY();
}
}