Spezieller Cursor in Swing

Status
Nicht offen für weitere Antworten.

babuschka

Top Contributor
Hallo zusammen,

habe eine Frage zu Cursors mit Swing in Kombination mit Zeichnen mit AWT. Ich initialisiere ein JPanel in Swing und zeichne mit AWT darauf. Jetzt möchte ich einen "besonderen" Cursor in das JPanel rein integrieren, der folgende Eigenschaften haben soll:

- das Cursorsymbol selbst soll die Form einer Raute haben und ca. 64x32 px groß sein.
- der Cursor soll sich nicht "stufenlos", also wie gewohnt immer pixelweise über den Bildschirm gleiten, sondern "diskret", also immer nur "eine Raute neben der anderen" und das in alle Richtungen.

Ich hoffe, ihr versteht, was ich meine. Wenn nicht, dann zeichne ich gerne noch eine kurze Skizze. Wäre nett, wenn mir jemand weiterhelfen könnte.

Vielen Dank und viele Grüße,

squirrel
 

Wildcard

Top Contributor
Was meinst du wenn du sagst mit AWT auf Swing zu zeichnen?

Über den Betriebssystem Cursor lässt sich das nicht lösen (alleine schon dadurch das er zum Beispiel auf Windows gar nicht so groß sein darf).
Du müsstest den Cursor unsichtbar machen und alles selbst zeichnen. Dürfte mit Arbeit verbunden sein.
 

babuschka

Top Contributor
@Wildcard: okay, danke. Ich hab soetwas schon befürchtet. Vielleicht erzähle ich meine Idee noch mal neu und etwas ausführlicher und kombiniere es mit deiner Aussage "Du müsstest den Cursor unsichtbar machen und alles selbst zeichnen" von eben:

Ich möchte ein kleines Game in Java programmieren, und zwar in isometrischer Darstellung. Dazu habe ich jetzt einen Hintergrund bestehend aus vielen Kacheln, "tiles", die allesamt Rauten der Größe 64x32 px sind.

Nun möchte ich auf diesem "Boden" den eben beschriebenen Cursor drauflegen. Könnte ich nicht eine Art zweiten Layer drüberlegen, bei dem über jeder Kachel genau einmal eine "Auswahlraute" zu sehen ist. Und dann alle Rauten unsichtbar machen und immer nur diejenige Auswahlraute über der jeweiligen Kachel "aufleuchten" lassen, über die der (unsichtbare) Cursor gerade drüberwandert? Das wäre doch dann die Idee von dir, Wildcard, oder?

Gruß,
squirrel


P.S. mit "mit AWT auf Swing zeichnen" meine ich: ich hab mittels javax.swing.JPanel ein JPanel gebastelt, und dann benutze ich u.a. die Methoden paint() und drawOnBackgroundImage() aus java.awt.Graphics um darauf zu zeichnen. Dabei mache ich von double-buffering Gebrauch.
 

Wildcard

Top Contributor
Sowas?
screen15.png

Das ist machbar.
Ich hatte mir aus deiner Schilderung etwas wesentlich komplizierteres Vorgestellt.

P.S. mit "mit AWT auf Swing zeichnen" meine ich: ich hab mittels javax.swing.JPanel ein JPanel gebastelt, und dann benutze ich u.a. die Methoden paint() und drawOnBackgroundImage() aus java.awt.Graphics um darauf zu zeichnen. Dabei mache ich von double-buffering Gebrauch.
Bei JPanel solltest du unbedingt paintComponent überschreiben und nicht paint.
DoubleBuffering brauchst du nicht, das macht Swing alleine und soweit möglich sogar Hardwarebeschleunigt.
 

babuschka

Top Contributor
Jaaa! :) Ganz ganz genau soetwas! Dieses kleine graue Sechseck in der Mitte möchte ich realisieren. Kannst du mir vielleicht einen Hinweis oder einen Link geben, wie ich da grob vorzugehen habe?

Okay, werde alsbald mal meine paint() Funktionen ersetzen und optimieren, danke für den Hinweis!

Gruß,
squirrel
 

Wildcard

Top Contributor
Die Sechsecke haben vermutlich auch eine Relevanz im späteren Spiel, insofern würde ich dir dazu raten sie als eigene Objekte zu implementieren.
Mit einem MouseMotionListener findest du raus über welchem Sechseck der Cursor ist und setzt diesem ein 'isSelected' Flag oder etwas in der Art.
Dieses Flag wird beim Rendern des Sechsecks ausgewertet und schlägt sich in einer Border nieder.
Ist nicht allzu schwierig.
Aber vorher unbedingt das Konzept überlegen. UML Diagramme etc. :wink:
 

babuschka

Top Contributor
Alles klar, das klingt nach einem guten Plan! Ich werde mich sofort an die Arbeit machen! Vielen Dank schonmal für deine Hilfe, Wildcard! Kann ich mich evtl. bei Fragen nochmal melden?

Zur Info: das Spiel wird im Rahmen eines Programmierprojektes an der Uni erstellt und da haben wir ein recht striktes Ablaufmodell des Projektes. Alles ist in Milestones aufgeteilt. Der erste Milestone war, das Konzept, das Klassendesign und das visuelle GUI-Design zu erarbeiten und vorzustellen. Also UML haben wir schon ordentlich gequält... ;-) Nun sitzen wir am 2. Milestone und müssen den Prototypen entwickeln. Meine Aufgabe ist (u.a.) das GUI.

Gruß,
squirrel
 

Wildcard

Top Contributor
squirrel hat gesagt.:
Kann ich mich evtl. bei Fragen nochmal melden?
Ich würde mal behaupten dafür gibt es das Forum :wink:

Der erste Milestone war, das Konzept, das Klassendesign und das visuelle GUI-Design zu erarbeiten und vorzustellen. Also UML haben wir schon ordentlich gequält... icon_wink.gif Nun sitzen wir am 2. Milestone und müssen den Prototypen entwickeln.
Ein Anschauliches Beispiel warum Analyse und Entwurfsdiagramme nicht das selbe sind :wink:
Gerade für solche Sachen wie Spiele, wenn man den Standard-Bereich der Widgets verlässt und sein eigenes Zeichenframework braucht ist eine gute Planung unabdingbar sonst verzettelt ihr euch hoffnungslos.
Spielt das Szenario gemeinsam durch und versuch euch Gedanken über mögliche Probleme zu machen und lasst das in euren Entwurf einfließen.
Wäre natürlich gut wenn zumindest einer von euch entsprechende Projekterfahrung hätte. Das macht vieles einfacher.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Spezieller Button AWT, Swing, JavaFX & SWT 2
I Spezieller Knopf in Swing? Soll sein wie der Run in Eclipse. AWT, Swing, JavaFX & SWT 4
G 'Spezieller' Tooltip, wenn JTable-Column zu schmal AWT, Swing, JavaFX & SWT 6
B Spezieller Button gesucht AWT, Swing, JavaFX & SWT 10
M Ganz spezieller Renderer für meinen JTree AWT, Swing, JavaFX & SWT 2
Juelin TextField Cursor Position AWT, Swing, JavaFX & SWT 2
H JDialog in Größe ändern - Resize-Cursor bleibt betreten der Komponente AWT, Swing, JavaFX & SWT 1
E verschiedene Cursor setzen AWT, Swing, JavaFX & SWT 1
E JavaFX Cursor-Position im ScrollPane AWT, Swing, JavaFX & SWT 0
T Java Swing - kleines Rechteck unter dem cursor AWT, Swing, JavaFX & SWT 5
domjos1994 JavaFX Element auswählen auf dem der Cursor ist AWT, Swing, JavaFX & SWT 1
Tom299 JavaFX Default-Cursor läßt sich nicht immer "aktivieren" AWT, Swing, JavaFX & SWT 3
N Cursor im JTextField AWT, Swing, JavaFX & SWT 6
Q Cursor Frage AWT, Swing, JavaFX & SWT 8
B setCursor() lässt Cursor ganz verschwinden AWT, Swing, JavaFX & SWT 9
Madlip SWT Probleme mit SWT.CURSOR AWT, Swing, JavaFX & SWT 2
B Swing Cursor-Transparenz AWT, Swing, JavaFX & SWT 2
A Swing GlassPane Cursor wird bei fremder Komponente nicht angezeigt AWT, Swing, JavaFX & SWT 3
B Swing Eigenen Cursor setzen AWT, Swing, JavaFX & SWT 10
B Cursor Farbe ändern AWT, Swing, JavaFX & SWT 6
J Cursor blinken ausschalten AWT, Swing, JavaFX & SWT 4
J Swing Cursor von Child falsch, wenn Parant disabled AWT, Swing, JavaFX & SWT 2
Zettelkasten Cursor nicht anzeigen lassen AWT, Swing, JavaFX & SWT 2
C Cursor AWT, Swing, JavaFX & SWT 5
T Swing JTable - true zurückbekommen, wenn der Cursor in einer Zelle blinkt AWT, Swing, JavaFX & SWT 7
K mehrere JTextFields - wie finde ich die Cursor-Position? AWT, Swing, JavaFX & SWT 5
M Swing [JTextPane] Cursor lässt sich nicht mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 3
T Cursor im JPanel fangen AWT, Swing, JavaFX & SWT 2
D cursor bild und mouslistner AWT, Swing, JavaFX & SWT 9
M Cursor setzen im JTextPane AWT, Swing, JavaFX & SWT 3
hdi Custom Cursor: Problem mit Größe AWT, Swing, JavaFX & SWT 5
S AWT Eigenen Cursor im Frame verwenden... AWT, Swing, JavaFX & SWT 5
D JTextField behält meinen cursor nicht AWT, Swing, JavaFX & SWT 3
G Cursor Bewegung tracken AWT, Swing, JavaFX & SWT 2
H Flexibler Cursor AWT, Swing, JavaFX & SWT 8
G Komponente in der der Cursor steht zurückgeben? AWT, Swing, JavaFX & SWT 2
D Bild Cursor AWT, Swing, JavaFX & SWT 5
D JTextAray und Cursor AWT, Swing, JavaFX & SWT 11
T Problem mit dem Cursor AWT, Swing, JavaFX & SWT 7
R Den Cursor setzen AWT, Swing, JavaFX & SWT 5
M Problem mit Cursor für Panels AWT, Swing, JavaFX & SWT 4
M Cursor wird nach JFileChosser nicht gesetzt AWT, Swing, JavaFX & SWT 3
T Markierten Mausbereich erfassen, Text beim Cursor platzieren AWT, Swing, JavaFX & SWT 6
V Cursor zu Groß AWT, Swing, JavaFX & SWT 4
T Cursor setzen AWT, Swing, JavaFX & SWT 3
L wie den Cursor von einem TextFeld zum anderen setzen? AWT, Swing, JavaFX & SWT 3
B Cursor zentriert in ein Textfeld positionieren AWT, Swing, JavaFX & SWT 2
E Cursor in JTextPane versetzen? AWT, Swing, JavaFX & SWT 19
D Farbe einer Grafik über den Cursor abfragen AWT, Swing, JavaFX & SWT 6
M Cursor im deaktivierten JInternalFrame AWT, Swing, JavaFX & SWT 2
A Cursor Icon bei DnD aus nativen Anwendungen AWT, Swing, JavaFX & SWT 2
S Cursor über JButton ändern AWT, Swing, JavaFX & SWT 4
V JTextField Focus Cursor setzen AWT, Swing, JavaFX & SWT 2
U Cursor beim Drag and Drop AWT, Swing, JavaFX & SWT 8
T JTextArea, in welcher Zeile befindet sich der Cursor AWT, Swing, JavaFX & SWT 25
clemson Cursor in JTable-Cell setzen AWT, Swing, JavaFX & SWT 6
P [TextField] cursor setzten AWT, Swing, JavaFX & SWT 2
Luma Keinen Cursor in JDialog? AWT, Swing, JavaFX & SWT 9
G Focus so setzen, daß in einer jTextArea der Cursor blinkt AWT, Swing, JavaFX & SWT 7
Juelin javax.swing in javafx AWT, Swing, JavaFX & SWT 1
A Eclipse 2023 und Swing AWT, Swing, JavaFX & SWT 4
W 2 JTables in einem Swing-Fenster? AWT, Swing, JavaFX & SWT 5
H Swing Componente zur Läufzeit ändern AWT, Swing, JavaFX & SWT 3
B Actionlistener mit Java Swing AWT, Swing, JavaFX & SWT 2
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
ExceptionOfExpectation Anpassung von JKomponentengrößen (Swing) AWT, Swing, JavaFX & SWT 3
thor_norsk AWT SWING Aufgabe AWT, Swing, JavaFX & SWT 7
U Zwei Fragen zu eienr Swing Aufgabe AWT, Swing, JavaFX & SWT 2
M Swing Bilder in Swing anzeigen AWT, Swing, JavaFX & SWT 9
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
H Simple Animation mit Swing AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
A Swing ProgressBar über 2 parallel laufende Threads AWT, Swing, JavaFX & SWT 2
M Swing GridLayout AWT, Swing, JavaFX & SWT 2
O return-Statement mit Swing AWT, Swing, JavaFX & SWT 6
O Ein Java-Programm mit Swing steuern AWT, Swing, JavaFX & SWT 1
Monokuma Swing zu JavaFX AWT, Swing, JavaFX & SWT 5
J Swing Slider AWT, Swing, JavaFX & SWT 11
G Thread starten Swing AWT, Swing, JavaFX & SWT 5
G Swing JPasswordField AWT, Swing, JavaFX & SWT 12
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
C Swing AWT GUI Anfänger Aufgabe AWT, Swing, JavaFX & SWT 7
W Inject bei einem Swing Frontend AWT, Swing, JavaFX & SWT 8
L Kommunikation zwischen Klassen / Konstruktoren bei Swing AWT, Swing, JavaFX & SWT 9
M Feldvalidierung swing AWT, Swing, JavaFX & SWT 4
E Swing Componenten werden nach Änderung des display modes verzerrt dargestellt AWT, Swing, JavaFX & SWT 8
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
O Zukunft von Swing und JavaFX ? AWT, Swing, JavaFX & SWT 3
S Swing Fenster State Machine AWT, Swing, JavaFX & SWT 1
T Swing Swing an Bildschirm anpassen AWT, Swing, JavaFX & SWT 3
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
M Swing GUI mittels erben sowie variabler Dateninhalt AWT, Swing, JavaFX & SWT 1
W Swing Multitouch mit Swing AWT, Swing, JavaFX & SWT 6
S Swing-Applikation die ein Numpad nachbildet samt Keybindings..? AWT, Swing, JavaFX & SWT 5
S Swing Java Swing AWT, Swing, JavaFX & SWT 6
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
J Swing oder JavaFX AWT, Swing, JavaFX & SWT 21
D Swing Anwendung ohne JPanel erstellen AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben