deriveFont(float size)方法仅使Font普通而无需更改其大小。

JButton prevButton = new JButton("Previous");
prevButton.setFont(prevButton.getFont().deriveFont(90));


如果我像以下示例中那样使用deriveFont(int样式,浮点大小),它将按预期工作。

JButton prevButton = new JButton("Previous");
prevButton.setFont(prevButton.getFont().deriveFont(Font.BOLD, 90));


有人可以解释这种行为吗?

最佳答案

检查所有deriveFont重载的变量参数。当您deriveFont(90)时(有人可能会说这有点含糊),您正在更改字体的样式,而不是大小。方法为deriveFont(int style),其中可接受的style值为Font.BOLDFont.ITALICFont.PLAIN

另一方面,此方法的另一个重载是deriveFont(float size)。注意float。为了使此工作有效,您应按@camickr在注释中指出的deriveFont((float) 90)deriveFont(90f)。将int强制转换为float将使您清楚地知道要更改大小。

10-01 12:40