我用Font b = a.deriveFont(m);m是float类型。不知这个是否能行?我试过了,好像可以!不知是什么道理!
我查了一下Docs,对public Font deriveFont(float size)方法的说明是产生了一个新的Font object,这样好象的确可以用float设置字体size,但我们需要的是效果,而不能只是参数变化的形式,做一个实验就会发现,设置12.3f和12的字体大小没有变化,而12.5f的大小则与13一样了,说明Java(学过四舍五入),哈哈~~~~开玩笑。下面是我测试用的代码,可以一起研究一下。 import javax.swing.*; import java.awt.*;public class Test { JFrame frame; public Test(){ frame = new JFrame("Test"); String str = "我们都有一个家,名字叫中国!"; Font font = new Font("宋体", 0, 12); //第一个字体 Font f = font.deriveFont(12.3f); //第二个字体 JPanel pane = new JPanel(); JLabel label = new JLabel(str); label.setFont(font); JLabel l = new JLabel(str); l.setFont(f); pane.add(label); pane.add(l); frame.getContentPane().add(pane, BorderLayout.CENTER); frame.setSize(300, 200); frame.setVisible(true); } public static void main(String[] args) { new Test(); } }
import javax.swing.*;
import java.awt.*;public class Test {
JFrame frame; public Test(){
frame = new JFrame("Test");
String str = "我们都有一个家,名字叫中国!";
Font font = new Font("宋体", 0, 12); //第一个字体
Font f = font.deriveFont(12.3f); //第二个字体
JPanel pane = new JPanel();
JLabel label = new JLabel(str);
label.setFont(font);
JLabel l = new JLabel(str);
l.setFont(f);
pane.add(label);
pane.add(l);
frame.getContentPane().add(pane, BorderLayout.CENTER);
frame.setSize(300, 200);
frame.setVisible(true);
}
public static void main(String[] args) {
new Test();
}
}