У меня есть JButton, для которых я устанавливаю текст, когда они требуются, иногда текст меняет размер кнопки, больше или меньше. Я добавил примеры ниже.
Если я наведу курсор мыши на кнопку, текст вернется к набору размер. Размеры задаются для 2000 и 2013.
Кнопки создаются и устанавливаются следующим образом:
//create buttons
Buttons.add( Btn1 = newImageButton(Picture.Button.getImageIcon(), "Btn1", Color.WHITE));
x = (int)(0.5f + (0) * getScreenWorking().width);
y = (int)(0.5f + (yBtnStep + yBtnMargin) * getScreenWorking().height);
buildConstraintsFF(Btn1, x, y, -1);
Btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
ButtonAction(evt);
}
});
Btn1.setVisible(false);
Buttons.add( Btn2 = newImageButton(Picture.Button.getImageIcon(), "Btn2", Color.WHITE));
x = (int)(0.5f + (xBtnStep) * getScreenWorking().width);
y = (int)(0.5f + (yBtnStep + yBtnMargin) * getScreenWorking().height);
buildConstraintsFF(Btn2, x, y, -1);
Btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
ButtonAction(evt);
}
});
Btn2.setVisible(false);
public JButton newImageButton(ImageIcon ii, String str, Color col) {
JButton btn = new JButton(ii);
Dimension dim = new Dimension(ii.getIconWidth(),
ii.getIconHeight());
btn.setPreferredSize(dim);
btn.setMaximumSize(dim);
btn.setMinimumSize(dim);
btn.setText(str);
btn.setForeground(col);
btn.setHorizontalTextPosition(SwingConstants.CENTER);
btn.setFont(new Font("GothamNarrow-Book", Font.BOLD, 24));
btn.setBorderPainted(false);
btn.setContentAreaFilled(false);
btn.setFocusPainted(false);
btn.setOpaque(false);
return(btn);
}
//Button text set from list and made visible to size of list
for(int i=0; i < List.size(); i++){
btn1 = Buttons.get(i);
setBtnText(List.get(i), i);
btn1.setVisible(true);
}
//set button text
public void setBtnText(String str, int i){
JButton btn = autosButtons.get(i);
String str2 = "<html><center><font size=6>" + str + "</font></center></html>";
btn.setText(str2);
btn.setMargin(new Insets(20,0,20,0));
btn.setVerticalAlignment(SwingConstants.CENTER);
btn.setHorizontalAlignment(SwingConstants.CENTER);
btn.repaint();
}
private JButton Btn1;
private JButton Btn2;
public ArrayList<JButton> Buttons = new ArrayList<JButton>();
private List<String> List = new ArrayList<String>();
Может кто-нибудь объяснить мне, почему размер текста изменяется, как на картинках?
Это проблема с настройками текста или Swing?