我一直试图在我的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);
[如果您有解决此问题的方法,请告诉我。谢谢。
输入完此代码后,我意识到了我的错误。我已经定义了用来将GUI显示为静态方法的方法。将方法重新定义为
之后public void runGUI() {}
并运行该程序,JMenu的字体同时变为粗体和30磅。 我测试了如上所述使用的两种方法,并将方法重新定义为非静态,并且这两个语句对我来说都可以调整JMenu的字体大小和粗体。
我决定回答我自己的问题,以防其他人遇到类似的问题。我只想对任何一个想回答的人提出一个问题:为什么仅在方法不是静态的时候才起作用?