Ich versuche, mein Symbol so zu skalieren, dass es die gesamte Schaltfläche abdeckt und in der Mitte der Schaltfläche sitzt. Wenn ich es versuche, streckt es meinen Knopf und vermasselt alles andere. Wie kann ich es tun? Derzeit ist mein Code:Java Stretch-Symbol zum Anpassen der Schaltfläche
In meinem Konstruktor einer Klasse ..
javax.swing.JButton Console = new javax.swing.JButton;
ScaleButtonImage(Console, ConsoleEnabledImage);
Innerhalb dieser Klasse ..
private void ScaleButtonImage(javax.swing.JButton Button, java.awt.Image ButtonIcon) {
double Width = ButtonIcon.getWidth(Button);
double Height = ButtonIcon.getHeight(Button);
double xScale = 28/Width;//Button.getWidth()/Width;
double yScale = 28/Height;//Button.getHeight()/Height;
double Scale = Math.min(xScale, yScale); //ToFit
//double Scale = Math.max(xScale, yScale); //ToFill
java.awt.Image scaled = ButtonIcon.getScaledInstance((int)(Scale * Width), (int)(Scale * Height), java.awt.Image.SCALE_SMOOTH);
Button.setIcon(new javax.swing.ImageIcon(scaled));
}
LAYOUT:
.addGroup(layout.createSequentialGroup()
.addComponent(Enable, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Graphics, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Debug, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(Console, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
Dann verknüpfe ich alle von ihnen horizontal und vertikal, so dass sie alle die gleiche Größe haben.
Stattdessen sieht es wie folgt aus. Wenn ich das Symbol der ersten Schaltfläche ändere, ändern sich auch alle Schaltflächen aufgrund meiner Beschränkungen. Wie passe ich die Symbole den Schaltflächen an?
[bitte Q & A von @mre zu überprüfen] (http://stackoverflow.com/search?q=user:584862+[jbutton]), JButton hat keinen LayoutManager implementiert – mKorbel
Das ist schon versucht. Das Hinzufügen des Label-Bildes und das Hinzufügen zu der Schaltfläche funktioniert nicht. Ich habe auch versucht, Borderlayout in der Schaltfläche zu implementieren. Funktioniert immer noch nicht. – Brandon
Ich vermute, dass bei der Größenanpassung des Bildes etwas nicht stimmt (double xScale = 28/Width; double yScale = 28/Height; ...). Auf diese Weise, denke ich, wird Ihr Verhältnis 1: 1 anstatt des ursprünglichen Verhältnisses wie 4: 3 oder 16: 9 sein. –