1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
551
551
EMPFEHLEN
-
23.11.11 12:01 #1
- Registriert seit
- Aug 2011
- Beiträge
- 62
Hallo Java Profis,
(Java 1.1.8)
Ich habe ein Programm erstellt welches Linien und Kreise zeichnet.
Nun möchte ich wenn man mit der Maus über eine Linie fährt, das diese in einer anderen Farbe eingeblendet wird. Bei Anklick sollten sich danach sämtliche optionen einblenden.
Alles halb sowild, allerdings habe ich null Plan wie ich den Maus-Listener implementieren muss. Ich bitte daher um eure Unterstüzung. Beispielcode wäre vom Feinsten.
Eine weitere Frage: kann ich die Strichstärke einer Linie irgendwie modifizieren? (Ich arbeite mit AWT in der Java Version 1.1.8)
lg
-
23.11.11 12:25 #2
Hi,
ich würde das folgendermaßen machen. Ersteinmal der MouseMotionListener - für die Mausbewegung.
Dann die MyLine-Klasse:Code java:1 2 3 4 5 6 7 8 9 10 11 12
public void mouseMoved(MouseEvent e) { final int x = e.getX(); final int y = e.getY(); for(MyLine line : lineList) { if(line.contains(x, y)) { line.setColor(Color.RED); // Wenn Maus über der Linie ist } else { line.setColor(Color.BLACK); // Wenn Maus wo anders ist } } }
Ich denke mal, dass das eine recht komfortable Lösung ist. Falls du Fragen dazu haben solltest, zögere nicht.Code java:
ps.: Ob das so auch in der Java 1.1.8 Version geht, weiß ich nicht, da ich das nicht testen konnte.
Gruß
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
23.11.11 15:07 #3
- Registriert seit
- Aug 2011
- Beiträge
- 62
Hallo,
Danke erstmals für die rasch antwort!
So nun bekomme ich die momentane Position der Maus mit, ich kann auch ein Event auslösen (großer Erfolg für Java Idioten
).
Wie kann ich nun die Linien in eine Liste schreiben? mein Problem ist das ich etwas Toleranz (2-3 Pixel) benötige, ich meine damit das wenn er 2pixel neben die Linie klickt, auch als ein Treffer gewertet wird!
lg
-
23.11.11 15:54 #4
Also die MyLine-Klasse in eine Liste bekommen geht ganz einfach:
Code java:1 2 3
List<MyLine> lineList = new ArrayList<MyLine>(); // ... lineList.add(new MyLine(x, y, x1, y1));
Um eine Toleranz zu ermöglichen wirst du wahrscheinlich die Methode "contains(x, y)" von der Super-Klasse "Line2D" überschreiben müssen. Sprich:
Code java:
Gruß
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
23.11.11 15:58 #5
- Registriert seit
- Aug 2011
- Beiträge
- 62
upps, wir erst ab Java 1.5 unterstützt!
muss ichs doch mit nem Array versuchen.
Lg
Ähnliche Themen
-
DrawLine in Bitmap konvertieren und vergrössern
Von alex-test im Forum .NET Grafik und SoundAntworten: 2Letzter Beitrag: 20.12.07, 17:44 -
MouseListener JDK 1.3.1 vs JDK 1.5
Von zerix im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 0Letzter Beitrag: 31.08.07, 12:18 -
[VC++] Zeichenbefehle? Bessere anstelle von drawLine usw...
Von the incredible Leitman im Forum VisualStudio & MFCAntworten: 39Letzter Beitrag: 20.02.07, 18:34 -
JButton in der linken oberen ecke nach drawLine
Von Fu-Schnickens im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 11.01.06, 00:48 -
"drawLine" für eine eclipse View
Von Zerwas im Forum JavaAntworten: 4Letzter Beitrag: 14.07.04, 15:42





Zitieren
Login





