In connections with these two post @iMohammad, Increasing/Decreasing Font Size inside textArea using JButton and Changing Font Style when Clicking on a JButton Java ..., I'm facing with really funny issue that came from JComboBoxby passing setPrototypeDisplayValue as an argument for JComboBox's size on the screen
please how can I resize JComboBox dynamically depends of Font, same as works correctly for another JComponents that I tried in my sscce
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ComboBoxFontChange extends JFrame { private static final long serialVersionUID = 1L; private JComboBox cbox = new JComboBox(); private JTextField tfield = new JTextField("Change"); private JLabel label = new JLabel("Cash"); private JButton button = new JButton("++ Font"); private JTextField text; private JPanel panel = new JPanel(); public ComboBoxFontChange() { super("Combo Box Font change"); text = (JTextField) cbox.getEditor().getEditorComponent(); cbox.addItem("Change"); cbox.addItem("Cash"); cbox.addItem("Font"); tfield.setColumns(5); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Font font = cbox.getFont(); font = font.deriveFont((float) (font.getSize2D() * 1.10)); cbox.setFont(font); // EDIT cbox.setPrototypeDisplayValue(cbox.getSelectedItem().toString()); tfield.setFont(font); button.setFont(font); label.setFont(font); //panel.revalidate(); //panel.repaint(); pack(); } }); //panel.setLayout(new GridLayout(2, 2, 10, 10)); panel.add(cbox); panel.add(label); panel.add(tfield); panel.add(button); setDefaultCloseOperation(EXIT_ON_CLOSE); add(panel); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { ComboBoxFontChange frame = new ComboBoxFontChange(); frame.pack(); frame.setVisible(true); } }); } }