setCursor() lässt Cursor ganz verschwinden

Blagg Dogg

Mitglied
hi, ich bins mal wieder :)

ich programmiere gerade ein kleines spiel und will auch den mauszeiger verändern. folgenden code habe ich aus dem insel-buch.

Cursor c = getToolkit().createCustomCursor(
new ImageIcon( "cross.png" ).getImage(),
new Point(10,10), "Cursor" );
setCursor( c );

allerdings sehe ich danach gar keinen cursor mehr?! ???:L
ich habs im jframe und im jpanel versucht.

jemand 'ne ahnung, woran das liegen kann?

danke
 

Marco13

Top Contributor
Lass' dir mal die einzelnen Parameter ausgeben, meine Kristallkugel sagt, das
System.out.println("Das hier "+new ImageIcon( "cross.png" ).getImage());
"null" ist, weil das Bild nicht gefunden wird.
 

Blagg Dogg

Mitglied
mmmh... ja aber warum kann er das nicht laden, das Bild ist 100%ig da...

null wird da auch nicht ausgegeben sondern sun.awt.image.ToolkitImage@3860458b ... allerdings auch wenn ich irgendnen anderen namen angebe....???:L
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Ne, wenn da was anderes als 'null' steht ist alles OK, Kommando zurück (hier waren kürzlich etliche Threads mit ~"meine Daten werden nicht gefunden"...)

Wenn er trotzdem nichts anzeigt kann ich erstmal nur spekulieren. Kannst du es mit irgendeinem Bild probieren, das man auf einem der erstbesten Suchergebnisse zu diesem Thema findet (z.B. Using Custom Cursors in Java - Code Beach ) um auszuschließen, dass es doch irgendwie an dem Bild liegt? Ggf. muss man mal ein KSKB basteln...

EDIT: BTW: In dem Link wird das Bild mit dem Toolkit geladen, aber das sollte egal sein
 

Blagg Dogg

Mitglied
das komische ist ja auch, dass nicht null zurück gegeben wird, auch wenn ich statt "cross.png" einen anderen string eingebe... das verstehe ich ja gar nicht...
 

Marco13

Top Contributor
Ach Moment, er gibt auch NICHT-null zurück, wenn dort ein Name angegeben wird, den es gar nicht gibt? Das kann eigentlich nicht sein...

Aber... (wie zu erwarten war) ... dieses KSKB (dessen Erstellung eigentlich deine Aufgabe gewesen wäre) funktioniert schonmal mit der pencil.gif
Java:
package _temp;

import java.awt.Cursor;
import java.awt.GridLayout;
import java.awt.Point;
import java.awt.Toolkit;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class CursorTest
{
    public static void main(String[] args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            @Override
            public void run()
            {
                JFrame f = new JFrame();
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.getContentPane().setLayout(new GridLayout(1,1));
                
                JPanel p = new JPanel();
                f.getContentPane().add(p);
                
                Cursor c = Toolkit.getDefaultToolkit().createCustomCursor(
                    new ImageIcon( "pencil.gif" ).getImage(),
                    new Point(10,10), "Cursor" );
                p.setCursor( c );
                
                f.setSize(400,400);
                f.setVisible(true);
                
            }
        });
    }
}
 

Blagg Dogg

Mitglied
das gibt es doch nicht. habe deinen 1:1 kopiert und er läuft nicht... sehe keinen cursor... auch wenn ich das wieder mit syso ausgeben lasse, zeiigt er mir auch nicht null an - egal bei welchem string - das gleiche wie bei mir. ich denke, ich werde eclipse neu installieren...
 
S

Spacerat

Gast
@Marco13: Sie haben so eben ein Toolkit-Image-Phänomen entdeckt, herzlichen Glückwunsch. Diesem ist's nämlich zunächst erst mal völlig egal, ob sich hinter dem Namen überhaupt Content verbirgt (sprich die Datei gefunden wurde oder nicht bzw. andere Ladefehler auftraten), aber null wird es zumindest nicht. Das merkt man erst, wenn man es per MediaTracker laden will. Ich weis jeztz nur nicht mehr, ob der Tracker 'ne Exception warf oder ob es erst bei dem Kopieren in ein BI auffiel, weil width und height -1 (invalid) bleiben.
[EDIT]Und wenn ich mir "loadImage()" von ImageIcon so betrachte, war glaub' ich sogar letzteres der Fall.[/EDIT]
[EDIT]Bestätigt... letzteres war der Fall...
Java:
Image img = new ImageIcon("ich bin nicht da!").getImage();
System.out.println(img);
System.out.println(img.getWidth(null));
ergibt
Code:
sun.awt.image.ToolkitImage@31ce069f
-1
[/EDIT]
[EDIT]Ach ja... BTW.: ImageIcon lädt auch per Toolkit.[/EDIT]
[EDIT]Boah... Neue Erkenntnisse nehmen kein Ende... Verwendest du Gifanimationen oder andere MultiFrameBilder? Die funktionieren nicht.
Note that multi-frame images are invalid and may cause this method to hang.
Allerdings würde sich dann (im KSKB) nicht mal der Frame aufbauen.
[/EDIT]
 
Zuletzt bearbeitet von einem Moderator:

Blagg Dogg

Mitglied
habs jetzt hinbekommen:

Java:
Cursor c=null;
		try {
			URL url = getClass().getClassLoader().getResource("cross.png");
			c = Toolkit.getDefaultToolkit().createCustomCursor(
			    ImageIO.read(url),
			    new Point(10,10), "Cursor" );
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		setCursor(c);

aber noch eine frage: nur ImageIO.read(new File("cross.png")) gibt ein fehler... weiß wer woran das liegt?
 
S

Spacerat

Gast
Files und URLs sind himmelweite Unterschiede. Files-> FileSystem, URLs->Everywhere Else. Deine Bilder befanden sich wohl im Klassenpfad (bin/src-Verzeichnis von Eclipse) und wurden deswegen als Resource gewertet. Solche Resourcen werden nur mit "getRessource()", welches eine URL liefert gefunden. Wenn du "ImageIcon(URL ressource).getImage()", funktionierts dann auch damit. Ein Grund, warum ich File Objekte nur noch sehr selten verwende, URLs sind viel flexibler.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
hdi Swing JFrame#setCursor macht Zicken AWT, Swing, JavaFX & SWT 10
Z setCursor unter Linux AWT, Swing, JavaFX & SWT 7
S e(fx)clipse erscheint nicht im Marketplace, lässt sich nicht installieren AWT, Swing, JavaFX & SWT 16
I AWT java.awt.FileDialog - "coffee cup"-Icon lässt sich nicht ersetzen AWT, Swing, JavaFX & SWT 14
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
M Umwandlung in den HSV-Farbraum lässt die Grafik pixelig werden AWT, Swing, JavaFX & SWT 8
R Textfield lässt sich nicht positionieren AWT, Swing, JavaFX & SWT 1
A Swing Datei lässt sich zwar speichern, aber nicht laden (Inhalt im JTextField anzeigen) AWT, Swing, JavaFX & SWT 18
ralfb1105 JavaFX Label lässt sich innerhalb service Task nicht updaten? AWT, Swing, JavaFX & SWT 22
P Gui lässt sich nicht starten AWT, Swing, JavaFX & SWT 10
R JavaFX lässt sich nicht in Eclipse einbinden AWT, Swing, JavaFX & SWT 4
J Button lässt sich nicht auf dem JPanel verschieben AWT, Swing, JavaFX & SWT 5
T .jar-Datei lässt sich unflexibler ausführen als über die IDE AWT, Swing, JavaFX & SWT 11
D JavaFX Label lässt sich nicht mehrmals färben AWT, Swing, JavaFX & SWT 7
D Java Swing, Label lässt sich nicht mit Checkboxen/Knopf verändern AWT, Swing, JavaFX & SWT 2
W JTextfield - Wert lässt sich nicht setzen AWT, Swing, JavaFX & SWT 3
kaoZ Swing JFrame lässt sich nicht über dispose() abbauen AWT, Swing, JavaFX & SWT 0
F textarea lässt panel verschwinden AWT, Swing, JavaFX & SWT 4
A Panel lässt sich nicht bewegen AWT, Swing, JavaFX & SWT 2
M JavaFX WebView lässt sich nur einmal öffnen AWT, Swing, JavaFX & SWT 2
S JPanel lässt die CPU heisslaufen AWT, Swing, JavaFX & SWT 3
W Swing JButton lässt sich nicht anzeigen AWT, Swing, JavaFX & SWT 8
D JSplitPane lässt sich nicht verschieben AWT, Swing, JavaFX & SWT 3
T jTable Spaltenbreite lässt sich nicht ändern AWT, Swing, JavaFX & SWT 8
J Swing Fenster lässt sich nach Schließung nicht wieder öffnen AWT, Swing, JavaFX & SWT 4
N Swing FileFilter lässt JTree sich nicht öffnen AWT, Swing, JavaFX & SWT 2
qwerqer Swing JDialog Darstellungsprobleme - Dialog lässt sich nicht schließen AWT, Swing, JavaFX & SWT 3
R Durch Listener lässt sich Programm nicht mehr ausführen AWT, Swing, JavaFX & SWT 4
Burny91 Swing Vertical JSplitPane lässt sich nicht nach rechts verschieben AWT, Swing, JavaFX & SWT 2
J Hintergrundbild des JFrames lässt Textboxen verschwinden? AWT, Swing, JavaFX & SWT 4
W pack() lässt Ränder AWT, Swing, JavaFX & SWT 3
M Swing [JTextPane] Cursor lässt sich nicht mit Pfeiltasten bewegen AWT, Swing, JavaFX & SWT 3
A JToolbar lässt sich aus dem Fenster lösen AWT, Swing, JavaFX & SWT 2
D Swing Button lässt sich nicht drücken AWT, Swing, JavaFX & SWT 5
B Heavyweight Popup lässt keine MouseEvents durch AWT, Swing, JavaFX & SWT 2
G JFormattedTextField lässt sich nicht mehr leeren AWT, Swing, JavaFX & SWT 4
X RCP/SWT/JFace: Sprache lässt sich nicht ändern AWT, Swing, JavaFX & SWT 3
P jTable mit Model lässt sich nicht neu laden AWT, Swing, JavaFX & SWT 5
A Problem mit JList! Textfarbe lässt sich nicht ändern! AWT, Swing, JavaFX & SWT 7
J JScrollBar lässt sich nicht auf minimum setzten AWT, Swing, JavaFX & SWT 7
K Fenster lässt sich nicht schließen =( AWT, Swing, JavaFX & SWT 16
H JSplitPane lässt sich nicht über rechtes Panel ziehen AWT, Swing, JavaFX & SWT 2
TheJavaKid font lässt sich bei der jtextarea nur einmal ändern AWT, Swing, JavaFX & SWT 3
G Menue lässt sich nicht einschalten AWT, Swing, JavaFX & SWT 3
F SWT Dialog lässt sich nur einmal öffnen AWT, Swing, JavaFX & SWT 3
H Tabsize in JTextArea lässt sich nicht ändern AWT, Swing, JavaFX & SWT 3
T Color lässt sich nicht verändern AWT, Swing, JavaFX & SWT 3
M frame lässt sich nicht schliessen AWT, Swing, JavaFX & SWT 7
K Programm lässt sich nicht beenden AWT, Swing, JavaFX & SWT 9
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
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
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
B Spezieller Cursor in Swing AWT, Swing, JavaFX & SWT 7
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

Ähnliche Java Themen

Neue Themen


Oben