为什么deriveFont(float size)不会更改JButton中的字体大小?

时间:2019-08-09 15:34:58

标签: java swing fonts jbutton

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));

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

1 个答案:

答案 0 :(得分:3)

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

另一方面,此方法的另一个重载是deriveFont(float size)。请注意float。为了使这项工作有效,您应该{@ {1}}或deriveFont((float) 90),如@camickr在评论中指出的那样。将deriveFont(90f)投射到int可以清楚地表明您要更改大小。