java - 为什么这个字体不改变大小?

标签 java fonts

我正在制作一个写字板程序,并尝试创建一个 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/

相关文章:

java - ReSTLet - 如何从 GET 请求获取 cookie

Matplotlib 找不到无衬线家族

iPhone UILabel sizeWithFont :

java - 如何在 node.js 中为 IBM DB2 iSeries 选择的 sql 的 where 子句中使用固定长度的 CCSID 37 字符值

java - 具有适配器困境的 ListView

java - 我什么时候应该使用 EntityManager 分离方法?

android - 整个应用程序的自定义字体

java - java JRE linux 的默认源是什么

html - Firefox 40.0.3 (Windows) 无法使用字体系列

php - 使用 PHP GD 计算文本宽度