Benutzeroberfläche gestalten (Bild auf JButton legen)

Lautsprecher

Erfahrenes Mitglied
Hallo,
ich bin gerade dabei meine Applikation ein wenig oberflächenmäßig auf zu Polieren. Bis jetzt benutze ich normale JButtons, die ich mit Hilfe des Visual Editor von Eclipse erstellt habe. Da diese ein wenig langweilig sind, habe ich mir Anfangs gedacht, einen GradientButton zu Coden. Ich habe auch schon einige Bsp. hier im Forum gesehen. Da mir hierfür die nötigen Kenntnisse fehlen, habe ich es bis jetzt nicht geschafft den Code einzubauen.
Alternativ habe ich mir jetzt überlegt, mit Hilfe eines Grafikpgm's z.B. einen Glasbutton zu erstellen. Und das jpg dann einfach auf den Button drauf legen.
Der Haken an der ganzen Sache ist bis jetzt, dass das Icon nie genau auf der Buttonschaltfläche liegt.
Weiß jemand wie man das Bild exakt auf die Buttongröße anpassen kann?
Bzw. habe ich mal gehört, dass man dafür am besten ein Label anlegt, worauf das Icon abgebildet wird und keinen Button mehr verwendet!! Stimmt das?
Auch muss es irgendwie möglich sein, dass ganze unter Image mit dem Befehl getscaled anzupassen, wie das jedoch gehen soll......?

Na ja, ich bin für jeden Tipp dankbar!
 
Hallo,

vielleicht so :

Code:
btCopy = new JButton();
            
            Image image = new ImageIcon(getClass().getResource("pfeil.png")).getImage();
            ImageIcon icon = new ImageIcon(image.getScaledInstance(btCopy.getWidth(),btCopy.getHeight(),Image.SCALE_FAST ));
            btCopy.setIcon(icon);

Kannst halt auch den Button durch ein Label ersetzen ...

Krösi
 
Hi,

versuchs mal mit

Code:
import java.awt.Image;

Darf ich fragen, welche Entwicklungsumgebungen du benutzt ? (wenn überhaupt)

Eclipse kann dir zum Beispiel die import's automatisch einbinden ;)

Krösi
 
Hi kroesi,
das mit dem Import klappt jetzt. Merci!
Jetzt bekomme ich jedoch folgende Fehlermeldung. Mein Bild liegt im C-Verzeichnis.

Code:
Exception in thread "main" java.lang.NullPointerException
	at javax.swing.ImageIcon.<init>(Unknown Source)

Code:
Image image = 
new ImageIcon(getClass().getResource("C:\\Gehen6.png")).getImage();
ImageIcon icon = 
new ImageIcon(image.getScaledInstance(jBKO.getWidth(),jBKO.getHeight(),Image.SCALE_FAST ));
jBKO.setIcon(icon);

Von der Syntax her müsste das Verzeichnis doch stimmen?! Wohin legst du dein Bild?
Muss es vielleicht im Workspace liegen, in dem sich auch meine Javaprogrammdateien befinden?

Ich benutze auch Eclipse. Das mit den automatischen Imports klingt ja super!. Kannst du mir vielleicht kurz nochmal schreiben, wie das funktioniert?!

Grüße
 
Hi !

Freut mich das es funktioniert !

Um importe automatisch einzufügen drücke einfach mal "strg+shift+o" !

Du kannst auch zum Beispiel den ersten teil von ImageIcon eintippen und dann
"strg +space" drücken, und er bindet es automatisch ein.

Beispiel : ImageIc "strg + space" und siehe da ....

Eclipse hat eine Menge super Funktionen, wenns dich interessiert google mal nach Refactoring.

Auch praktisch ist zum Beispiel das automatische generieren von Gettern und Settern (falls du damit was anfangen kannst ...). Drück mal im Quellcode auf die rechte Maustaste und gehe auf Source .. generate Getters and Setters , sehr praktisch.

Grüsse,

Krösi
 
Zurück