Maus gedrückt halten.

Xym

Erfahrenes Mitglied
Hallo,

ich hab bis jetzt eine Art Paint-Programm gemacht und bin recht zufrieden damit.
Nur ich finde, dass es nervt, wenn man eine Linie malen will 1 Mal klicken um sie zu malen und noch einmal um damit aufzuhören.
Viel eleganter finde ich es , wenn man die Line malt nur wenn man die Maus gedrückt hält.
Ich wollte das so lösen , dass ich in der mousePressed Methode linie = true setze und in der mouseReleased Methode linie = false setze.
Doch dann wird nur 1 Punkte gemalt und mehr nicht.

Ich hoffe ihr könnt mir weiter helfen.
 
ich bin mir sicher, dass sich hier gerne Leute finden die dir helfen. Aber mit dieser Beschreibung alleine geht das leider nicht. Generell kann deine Idee denke ich funktionieren (ich gehe mal davon aus, dass du nur gerade Linien ziehen willst).

Wenn wir dir helfen sollen brauchen wir Quelltext. Dazu wäre denke ich vor allem die mouseReleased Methode interessant, da in der ja die Linie gezogen wird, in mousePressed werden denke ich doch nur die Korrdinaten gespeichert und linie auf true gesetzt. Wenn du auch eine extra Methode zum Linien ziehen hast solltest du die auch posten.
 
Hallo Xym,

Ich habe auch vor kurzem ein ähnliches Programm geschrieben, deshalb glaube ich dein Problem auch ohne Quellcode zu verstehen.

Java:
...
private int startX, startY;

public YourPaintClass(){
     startX = -1;
     startY = -1;
}
public void mouseDragged(MouseEvent e){
     if(startX != -1){
          startX = e.getX();
          startY = e.getY();
    }
} 
public void mouseReleased(MouseEvent e){
    Graphics g = getGraphics();
    g.drawLine(startX, StartY, e.getX(), e.getY());
    startX = -1;
    startY = -1;
}
...

Noch ein Tipp: wenn du statt geraden Linien ein Stift-Tool machen willst, lass einfach alles mit "mouseReleased()" und "-1" weg, einfach so:

Java:
public void mouseDragged(MouseEvent e){
    Graphics g = getGraphics();
    g.drawLine(startX, StartY, e.getX(), e.getY());
    startX = e.getX();
    startY = e.getY();
}

javaDeveloper2011

PS: Wenn dich mein Programm interessiert würde ich es auch gerne hier posten.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Xym
Danke javaDeveloper2011!!

Genau das wollte ich erreichen!

Hast mir sehr geholfen.
 
Zurück