jjn*_*guy 17
本Font类允许您指定的字体大小.
因此,要创建字体,您可以执行以下操作:
Font f = new Font("serif", Font.PLAIN, fontSize);
Run Code Online (Sandbox Code Playgroud)
该fontSize参数将决定您的大小Font.
您实际上无法更改现有Font对象的大小.实现类似效果的最佳方法是使用该deriveFont(size)方法创建一个几乎相同的新Font大小.
Font biggerFont = existingFont.deriveFont(bigNumber);
Run Code Online (Sandbox Code Playgroud)
tdd*_*key 10
您可以使用以下方法派生具有不同大小的新Font:
Font original = // some font
Font bigger = original.deriveFont(newSize);
Run Code Online (Sandbox Code Playgroud)
其中newSize是float,而不是 int.正如其他人所指出的,这在JavaDoc for Font中有详细记载
假设您要更改特定的字体大小JLabel,您可以执行以下操作:
label.setFont(label.getFont().deriveFont(newSize));
Run Code Online (Sandbox Code Playgroud)
确保newSize是float不是int.
我将这个问题解释为"如何增加Swing的字体大小".我不知道有任何内置方法可以做到这一点,但您可以通过在创建任何Swing组件之前在启动时修改UIManager类中的值来自己完成.
我通过将一个参数传递到我的应用程序中来实现这一点,我将其用作乘数.如果我传入150,它会将所有现有字体乘以150%.代码如下
public static void initializeFontSize() {
String fontSizeParam = System.getProperty("myapp.fontSize");
if (fontSizeParam != null) {
float multiplier = Integer.parseInt(fontSizeParam) / 100.0f;
UIDefaults defaults = UIManager.getDefaults();
int i = 0;
for (Enumeration e = defaults.keys(); e.hasMoreElements(); i++) {
Object key = e.nextElement();
Object value = defaults.get(key);
if (value instanceof Font) {
Font font = (Font) value;
int newSize = Math.round(font.getSize() * multiplier);
if (value instanceof FontUIResource) {
defaults.put(key, new FontUIResource(font.getName(), font.getStyle(), newSize));
} else {
defaults.put(key, new Font(font.getName(), font.getStyle(), newSize));
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
你可以在运行应用程序时设置属性swing.plaf.metal.controlFont:
java -Dswing.plaf.metal.controlFont = Dialog-50 YourMainClass
在此示例中,您将默认字体设置为"Dialog",大小为50.
| 归档时间: |
|
| 查看次数: |
37487 次 |
| 最近记录: |