Hi,
ich hab viele kleine JButtons, die aus einem Bild und einem Text darüber bestehen.
jeder Button ist 24x24 pixel groß (so wie das runde Bild) und der Text wird auch in
der Mitte des Buttons angezeigt.
Jedoch ersetzt der UI Manager den Text durch "..." weil ihm der Platz anscheinend nicht
groß genug ist. Setze ich aber keine preferredSize, sondern lasse den Button seine größe
automatisch bestimmen, hat er die richtige Höhe wird bloß viel zu breit (so ca 100 pixel).
Somit ist er nicht mehr quadratisch und verzerrt meine GUI unschön mit großen freien Flächen.
Lustigerweise passt der angezeigte text aber immer in den 24x24 pixel großen Bereich
des eigentlichen Bildes - dh. eigentlich sollte es nicht durch "..." ersetzt werden.
Effektiv ändert sich nur dass der Button unnötig breit wird und alles drumherum verschiebt.
Wie löse ich das jetzt?
Ich hab keine Funktion für JLabels gefunden die verhindern dass der Text ausgeblendet wird.
Im Anhang mal der entsprechende Code:
Die Buttons wiederrum werden in verschiedene Panels für zeilen und Spalten geschrieben,
da das ganze eine Art Tabelle aus Buttons wird.
mfg BRoll
ich hab viele kleine JButtons, die aus einem Bild und einem Text darüber bestehen.
jeder Button ist 24x24 pixel groß (so wie das runde Bild) und der Text wird auch in
der Mitte des Buttons angezeigt.
Jedoch ersetzt der UI Manager den Text durch "..." weil ihm der Platz anscheinend nicht
groß genug ist. Setze ich aber keine preferredSize, sondern lasse den Button seine größe
automatisch bestimmen, hat er die richtige Höhe wird bloß viel zu breit (so ca 100 pixel).
Somit ist er nicht mehr quadratisch und verzerrt meine GUI unschön mit großen freien Flächen.
Lustigerweise passt der angezeigte text aber immer in den 24x24 pixel großen Bereich
des eigentlichen Bildes - dh. eigentlich sollte es nicht durch "..." ersetzt werden.
Effektiv ändert sich nur dass der Button unnötig breit wird und alles drumherum verschiebt.
Wie löse ich das jetzt?
Ich hab keine Funktion für JLabels gefunden die verhindern dass der Text ausgeblendet wird.
Im Anhang mal der entsprechende Code:
Java:
...
JPanel row=new JPanel();
for(int i=0; i<10; i++)
{
WellButton b=new WellButton(....);
b.setPreferredSize(new Dimension(24,24));
row.add(b);
}
...
public class WellButton extends JButton{
public WellButton()
{
this.setIcon(Images.getIcon("tankcellEmpty")); //24x24 großer kreis
this.setFont(this.getFont().deriveFont(9f));
this.setText("A1");
this.setHorizontalTextPosition(SwingConstants.CENTER);
this.setIconTextGap(0);
this.setBorderPainted(false);
this.setOpaque(false);
this.setContentAreaFilled(false);
}
}
Die Buttons wiederrum werden in verschiedene Panels für zeilen und Spalten geschrieben,
da das ganze eine Art Tabelle aus Buttons wird.
mfg BRoll