如何在Java中更改JMenu的字体大小?

问题描述 投票:0回答:1

我一直试图在我的Java程序中更改JMenu的字体大小,因为它会自动显示得非常小(我正在运行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);

[如果您有解决此问题的方法,请告诉我。谢谢。

java swing awt
1个回答
0
投票

输入完此代码后,我意识到了我的错误。我已经定义了用来将GUI显示为静态方法的方法。将方法重新定义为

之后
public void runGUI() {}

并运行该程序,JMenu的字体同时变为粗体和30磅。 我测试了如上所述使用的两种方法,并将方法重新定义为非静态,并且这两个语句对我来说都可以调整JMenu的字体大小和粗体。

我决定回答我自己的问题,以防其他人遇到类似的问题。我只想对任何一个想回答的人提出一个问题:为什么仅在方法不是静态的时候才起作用?

© www.soinside.com 2019 - 2024. All rights reserved.