Java GridBagLayout限制JLabel文本的大小

Java GridBagLayout限制JLabel文本的大小,java,swing,layout-manager,gridbaglayout,Java,Swing,Layout Manager,Gridbaglayout,在我的JFrame中,我有一个带有GridLayout(3,1)的主JPanel。在第一行,我有一个带有BorderLayout()的JPanel,我把我的标题放在那里。在第二排,我有一个带有GridBagLayout()的JPanel,我把游戏菜单放在那里。最后一行是空的JLabel() 我可以将标题字体调整为48,但对于我的菜单,我不能超过13,因为它不会显示所有字符。 似乎使用BorderLayout()我可以使用我的文本字体达到相当高的效果,但使用GridBagLayout()却不能,因

在我的JFrame中,我有一个带有GridLayout(3,1)的主JPanel。在第一行,我有一个带有BorderLayout()的JPanel,我把我的标题放在那里。在第二排,我有一个带有GridBagLayout()的JPanel,我把游戏菜单放在那里。最后一行是空的JLabel()

我可以将标题字体调整为48,但对于我的菜单,我不能超过13,因为它不会显示所有字符。 似乎使用BorderLayout()我可以使用我的文本字体达到相当高的效果,但使用GridBagLayout()却不能,因为GridBagLayout()限制了文本字体的大小。 知道为什么吗?我的Jframe尺寸是640x480

自定义标题标签:

public void paintComponent(Graphics g) {
    setForeground(Color.MAGENTA);
    g.setFont(new Font("TimesRoman", Font.BOLD, 48));
    super.paintComponent(g);
}
自定义菜单标签:

public void paintComponent(Graphics g) {
    setForeground(Color.white);
    g.setFont(new Font("TimesRoman", Font.BOLD, 13));
    super.paintComponent(g);
}
第二张图片说明了当我将文本大小设置为14时会发生什么


不要覆盖paintComponent()来设置组件的“前景”和“字体”属性。创建组件时使用组件的setForeground()和setFont()方法。它解决了问题!非常感谢。