如何更改JPanel的字体大小

时间:2013-12-24 22:13:14

标签: java swing fonts size jpanel

我正在尝试使用不同的字体大小创建JPanel,而不使用JLabels

下面是代码的样子。

public class MyPanel extends JPanel{

    public MyPanel(string title){
        JFrame frame = new JFrame(title);
        frame.setExtendedState(Frame.MAXIMIZED_BOTH);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
    }

    public void paintComponent(Graphics graphics){
        graphics.drawString("Some Text",100,100);
        // Should decrease font size
        graphics.drawString("Some Smaller Text",200,200);
        // Should increase font size
        graphics.drawString("Some Bigger Text",300,300);
    }
}

3 个答案:

答案 0 :(得分:3)

在void paint()方法中添加它

  float f=20.0f; // font size.
   g.setFont(g.getFont().deriveFont(f);
   g.drawString("whatever",150,f+10);// provides optimum gap for printing

完成...

答案 1 :(得分:2)

看起来您正在直接向Canvas绘制文本。要在使用java.awt.Graphics对象绘制时更改字体大小,需要更改当前字体。

例如:

public  void paint(Graphics g){
   Font font = new Font("Verdana", Font.BOLD, 12);
   g.setFont(font);
   g.drawString("bla bla",150,10);
}

理想情况下,您应该将字体对象声明为实例变量,而不是每次调用paint时都创建新字体。

答案 2 :(得分:1)

您可以从setFont()调用方法JPanel并为其指定Font。 示例:

setFont(new java.awt.Font("Century Schoolbook L", 2, 24));

第一个参数是字体名称,第二个参数是样式,最后一个是大小。