使用JButton在textArea中增加/减小字体大小

3

我正在使用Java创建一个便签应用。

我的目标: 我想要通过点击“增大字体”按钮来实现每次增加 textArea 中文字的大小。当然,我也知道如何做相反的操作。

简短代码:

        JButton incButton = new JButton("+");
        fontFrame.add(incButton);
        incButton.addActionListener(new fontIncAction());
        JButton DecButton = new JButton("-");
        fontFrame.add(DecButton);

        //textArea.setFont( Font("Serif", Font.PLAIN, fz));
    }
}

private class fontIncAction implements ActionListener{
    public void actionPerformed(ActionEvent e){

        textArea.setFont(new Font("Serif",Font.PLAIN,20));
    }
}

这只是一个猜测,但是你可以尝试在更改字体后使用textArea.setText(textArea.getText())。这样做的作用只是重置文本。我猜想更改字体只适用于文本框中的新文本。如果这不起作用,我无能为力。我只是觉得猜测总比保持沉默要好:)祝你好运! - Cody S
  1. 以当前字体大小为基础来确定新的大小。
  2. 为了更快地获得更好的帮助,请发布一个 SSCCE
  3. 您在实现目标时遇到了什么确切的问题?
- Andrew Thompson
@CodyS,字体适用于整个文本。您不必替换文本。 - camickr
1个回答

14
为了使代码更通用,您可以在ActionListener中执行以下操作:
Font font = textArea.getFont();
float size = font.getSize() + 1.0f;
textArea.setFont( font.deriveFont(size) );

哇!从来没有见过这样的东西!1.0f 中的 f 是什么意思?还有 deriveFont 是什么?所以 getSize() 返回字体的大小。 - Sobiaholic
1
@iMohammad:请参阅§3.10.2浮点数字面量 - trashgod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接