Automatische Größenänderung des JButton-Symbols

8

also ich habe diese JButtons zu denen ich Icons hinzufüge. Die Icons sind anfangs zu groß, deshalb verändere ich sie vorher und es funktioniert gut. Nur wenn ich die Größe des Fensters ändere, ändern die JButtons die Größe, aber nicht die Icons, was problematisch ist.

Gibt es eine Möglichkeit, ein Icon einfach mit der JButton zu füllen, an die es angehängt ist? Ein bisschen Code, um es klarer zu machen:

%Vor%

resizeIcon ist eine persönliche Funktion, die ein Icon, einen width-Parameter und einen height-Parameter akzeptiert und (scheinbar) ein in der Größe angepasstes Icon zurückgibt. Ich habe versucht, das Layout zu ändern, aber es ändert nichts. Ich habe versucht, die Breite / Höhe der JButton, aber da sie noch nicht vorhanden sind, wenn das Symbol hinzugefügt wird, funktioniert es nicht.

Würdest du eine Idee haben, wie du das durchstehen kannst? Es muss kein Symbol sein, solange mein JButton mit dem Bild gefüllt ist, das ich ihm gebe, es ist großartig:)

Danke!

    
Cristol.GdM 22.11.2011, 22:24
quelle

3 Antworten

3

in Swing kannst du jede JComponent zu der anderen JComponent hinzufügen, für Image ist JLabel die beste JComponent , dann stelle die JLabel#setIcon() auf JButton

%Vor%

BEARBEITEN:

%Vor%     
mKorbel 22.11.2011, 22:49
quelle
3
  1. Überschreibe paintComponent
  2. Zeichnen Sie das Bild direkt auf das Objekt Graphics

Stellen Sie beim Zeichnen des Bildes die dimensionalen Argumente getWidth() und getHeight() bereit. Dadurch wird die Größenänderung automatisiert. Außerdem sollten Sie bei der Größenanpassung ein gewisses Anti-Aliasing durchführen, damit das Bild nicht zu pixelig wird.

    
mre 22.11.2011 23:07
quelle
2

Sie können einen Component-Listener zu diesem Button hinzufügen, der bei der Größenanpassung Ihr Bild darin ändert

%Vor%

Ich hoffe, es hilft!

    
Omphaloskopie 22.11.2011 23:00
quelle

Tags und Links