更改JLabel字体大小

8
我正在尝试更改JLabel的字体大小,我尝试设置Font但是始终没有效果!以下是部分代码:
 @Override
 public void paint(Graphics g) {
 super.paint(g);
 Container cont=this.getContentPane();
 intro=new JLabel("משחק זיכרון");
 intro.setForeground(Color.YELLOW);
 intro.setFont(intro.getFont().deriveFont(64.0f));
 intro.setHorizontalAlignment( SwingConstants.CENTER );
 cont.add(intro);
     }

这个问题已经有答案了:https://dev59.com/0XE85IYBdhLWcg3wkkU8 - Undefined
我看到了!但是他们描述的所有方法我都用过,还是没有用!!! - fayez abd-alrzaq deab
paint 方法中更改小部件的属性并不是一个好主意。在代码的这一点上,您应该只绘制配置的对象。如果您想更改标签的属性,则应在代码的其他位置执行此操作。 - Laf
好的!我的代码有问题了!!!我写了两次setfont,但是我没有注意到!!!所以它完美地工作了!谢谢大家! - fayez abd-alrzaq deab
2个回答

15

您调用了错误的deriveFont方法。

deriveFont(int)方法中的参数是样式(粗体、斜体等)。您要查找的方法是deriveFont(float)

在您的情况下,您需要进行的唯一更改是intro.setFont(intro.getFont().deriveFont(64.0f));

以下是一个简短的代码示例,可以显示字体大小为64的标签:

JFrame frame = new JFrame ("Test");
JLabel label = new JLabel ("Font Test");
label.setFont (label.getFont ().deriveFont (64.0f));
frame.getContentPane ().add (label);
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.pack ();
frame.setVisible (true);

6
不要混淆需要样式参数的deriveFont方法和需要字体大小的方法。你正在使用的这个使用样式参数,并不影响实际字体大小。请改为使用字体大小方法。
intro.setFont(intro.getFont().deriveFont(64f)); 

同时不要在paint方法中添加组件。您当前的应用程序将不会显示JLabel,直到进行重新绘制。覆盖paint(或更正确地说是Swing的paintComponent)是为了自定义绘画,但添加组件并不符合此类要求。 每次重新绘制时,应用程序都会增加组件的开销。
示例:
enter image description here
public class LabelDemo {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                JFrame frame = new JFrame("Label Test");
                frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                JLabel intro = new JLabel("משחק זיכרון");
                frame.add(intro);
                intro.setFont(intro.getFont().deriveFont(64f));
                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}

谢谢,我找到了问题!不是我写的代码有问题,而是我意识不够。 - fayez abd-alrzaq deab

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接