Как изменить размер шрифта JMenu в Java? - PullRequest
0 голосов
/ 08 мая 2020

Я пытался изменить размер шрифта JMenu в моей программе Java, потому что он автоматически отображается невероятно маленьким (я использую Windows 10).

Вот мой код :

 import javax.swing.*;
    import java.awt.*;

...
        public static void runGUI()
        {
            //setup
            JFrame frame = new JFrame("Resistor Identifier");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(1000,1000);

            //define content
            Font font1 = new Font("SansSerif", Font.BOLD, 30);
            JMenuBar menu = new JMenuBar();
            JMenu menu1 = new JMenu("Settings");
            menu.setFont(font1);
            menu.add(menu1);
            JButton button1 = new JButton("Button 1");
            button1.setFont(font1);
            JTextArea text = new JTextArea();
            UIManager.put("Menu.font", font1);

            //show content
            frame.getContentPane().add(BorderLayout.CENTER, button1);
            frame.getContentPane().add(BorderLayout.NORTH, menu);
            frame.setVisible(true);
        }

Я пробовал использовать оба следующих оператора, чтобы изменить размер шрифта, но ни один из них ничего не сделал с размером шрифта (полужирный шрифт не работал и в тех операторах, которые я пробовал).

Font font1 = new Font("SansSerif", Font.BOLD, 30);
 menu.setFont(font1);

и

 UIManager.put("Menu.font", font1);

Сообщите мне, есть ли у вас решение этой проблемы. Спасибо.

1 Ответ

0 голосов
/ 08 мая 2020

Напечатав это, я понял свою ошибку. Я определил метод, который я использовал для отображения GUI как метод stati c. После переопределения метода просто как

public void runGUI() {}

и запуска программы шрифт JMenu стал полужирным и стал 30 pt. Я протестировал оба метода, которые использовал, как указано выше, с методом, переопределенным как non-stati c, и оба оператора помогли мне настроить размер шрифта и жирность JMenu.

Я решил ответить на свой вопрос на случай, если у кого-нибудь возникнет похожая проблема. У меня есть еще один вопрос для всех, кто хотел бы ответить: почему это работает только тогда, когда метод не stati c?

...