JButton Нежелательное изменение размера текста - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть JButton, для которых я устанавливаю текст, когда они требуются, иногда текст меняет размер кнопки, больше или меньше. Я добавил примеры ниже.

smaller larger

Если я наведу курсор мыши на кнопку, текст вернется к набору размер. Размеры задаются для 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?

...