java - 为什么deriveFont(float size)不改变JButton中的字体大小?

标签 java swing fonts jbutton

deriveFont(float size)方法只是使Font简单而不改变其大小。

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

如果我像下面的示例一样使用deriveFont(int style, float size),它就会按预期工作。

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 将明确您想要更改大小。

关于java - 为什么deriveFont(float size)不改变JButton中的字体大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57433261/

相关文章:

java - 如何检查套接字的输出流是否关闭?

java - 正则表达式在 csv 的引用元素中查找逗号

java - SmartCardIO EMV 读卡器,仅通过 ATR 编号查找我的卡类型

java - 组合、转发和包装

html - CSS - 字体样式很棒的字体图标

python - 停止 matplotlib 使用 Arial 字体

java - 如何更改 JFrame 中的字体颜色

Java:如何识别特定的字符串

java - 游戏循环中的 "Undo move"

java - 在 Java Swing GUI 中立即输出文本的正确方法