我正在制作一个写字板程序,并尝试创建一个 JComboBox 来更改字体大小。它运行/编译并显示我的选项,但是当我单击索引时,字体大小不会改变。这是修改字体大小的唯一方法,有什么建议让它起作用吗?
fontsize.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e)
{
if(fontsize.getSelectedIndex()==0)
{
txt.setFont(txt.getFont().deriveFont(10));
txt.setLineWrap(true);
}
else if(fontsize.getSelectedIndex()==1){
Font fontss = txt.getFont();
Font biggerFont = fontss.deriveFont(10);
txt.setFont(biggerFont);
txt.setLineWrap(true);
}
else if(fontsize.getSelectedIndex()==2){
Font fontss = txt.getFont();
Font biggerFont = fontss.deriveFont(10);
txt.setFont(biggerFont);
txt.setLineWrap(true);
}
else if(fontsize.getSelectedIndex()==3){
Font fontss = txt.getFont();
Font biggerFont = fontss.deriveFont(10);
txt.setFont(biggerFont);
txt.setLineWrap(true);
}
else{}
}
}
);
最佳答案
Why won't this font change size?
因为你根本没有改变尺寸。
您可能想查看 Font 的 Java API 并了解 deriveFont(int)
的实际含义。
您应该在 deriveFont(int style)
的参数列表中放置的是字体样式,而不是 字体大小。这就是为什么无法更改字体大小的原因。
public Font deriveFont(int style)
Creates a new Font object by replicating the current Font object and applying a new style to it.
Parameters: style - the style for the new Font
如果您想更改当前字体的字体大小,可以执行以下操作:
Font currFont = txt.getFont();
int newSize = 20;
txt.setFont(new Font(currFont.getName(), currFont.getStyle(), newSize));
关于java - 为什么这个字体不改变大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36227478/