我正在尝试使用不同的字体大小创建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);
}
}
答案 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));
第一个参数是字体名称,第二个参数是样式,最后一个是大小。