Labelicon bei Mausklick an den Zeiger pinnen

jDroid

Mitglied
Hallo an alle,

ich habe ein Label, der nur ein Icon enthält. Nun würde ich gerne dieses Icon bei einem Mausklick auf dieses Label an den Zeiger pinnen. Dieses Icon sollte sich dann mit dem Mauszeiger mitbewegen um es bei einem weiteren Klick in einer JTable auf einem Panel anzuzeigen.

Kann mir jemand einen Tipp geben. Suche schon seit mehreren Stunden. Habe aber leider nichts brauchbares gefunden.

Danke schon mal im Voraus.

Grüße, Johann
 
Falls es nur im Programm bewegt werden soll könntest du beim Klick die Position des Cursors auf dem Label speichern, bei einer Bewegung durch Events oder einen Thread das Label umpositionieren und bei einen weiteren Klick ablegen bzw. den Value des JTables hinzufügen. Dafür muss du natürlich das Label höher als alles andere platzieren, z. B. auf ein LayeredPane. Wenn es auch außerhalb des Programms funktionieren soll wirst du wohl um natives nicht herumkommen.
 
Ich glaube das sollte man mit dem GlassPane erledigen. Ich glaube mich zu erinnern dass sowas schonmal wer auf die Art erledigt hat. Wenn du ein bisschen im forum suchst wirst du sicher fündig.
 
Hi Leute,

danke für eure Antworten!

Das mit dem Icon am Mauszeiger anzeigen löse ich jetzt dadurch, dass ich bei einem Klick auf das Label mit dem Icon dieses als Mauszeiger anzeige. Dadurch habe ich jetzt allerdings ein weiteres Problem. Das Icon an sich hat eine Auflösung von 80*80 px. Sobald es aber als Cursor angezeigt wird, ist es nur noch winzig klein.

Hier der Code, mit dem ich das Icon auslese und als Cursor setzte:

Java:
	@Override
	public void mouseClicked(MouseEvent e) {
		label = (JLabel) e.getComponent();

                Toolkit t = Toolkit.getDefaultToolkit();

		ImageIcon icon = (ImageIcon) label.getIcon();
		
		Image image = icon.getImage();

		Cursor cursor = t.createCustomCursor(image, new Point(10, 10),
				"CustomCursor");
		ConstructionKit.getInstance().setCursor(cursor);

	}

Wäre froh über jeden Tipp.

Grüße, Johann
 
Keine Ahnung was der ConstructionKit ist und was der da baut, aber grundsätzlich hat der Cursor hat eine bestimmte Größe, frei aus dem Gedächtnis würde ich 32 px² schätzen.
 
ConstructionKit ist ein JFrame und das Hauptfenster der Anwendung.

Hmm, und es gibt keine Möglichkeit den Cursor größer als die 32px zu machen? Wobei ich auch glauben, dass mein größer kleiner als die 32px ist.
 
Scheint nicht so. Hab versucht den WCustomCursor zu überschreiben, aber in den nativen Methoden fliegt ne Exception. Außerdem scheint nicht jedes OS die Cursoränderung zu unterstützen.
 
Hi!

Ok, wenn's nicht geht, dann muss ich mich damit abfinden, dass man den Cursor nicht vergrößern kann.
Man kann ja das Icon trotzdem ganz gut erkennen.

Danke für deine Mühe!

Gruß, Johann
 

Neue Themen


Zurück
Oben