获取JTextPane中所选文本的字体大小

时间:2012-09-03 08:29:04

标签: java swing fonts jcombobox jtextpane

在我的文本编辑器中,我提供了通过JComboBox和StyledEditorKit更改文本的选项。唯一的问题是,一旦我在组合框中选择一个大小(并且它更改了所选文本),然后选择一个新的文本选择,组合框中的值将保持与上一个选择相同,无论实际大小

我看到this帖子,但我真的不明白给定的答案。

这是我用来更改字体的代码

JComboBox<?> fontSizeCombo = new JComboBox<Object>(sizes.toArray());
fontSizeCombo.setFocusable(false);
fontSizeCombo.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent e) {
          new StyledEditorKit.FontSizeAction("myaction-", (int) ((JComboBox<?>) e.getSource()).getSelectedItem()).actionPerformed(e);
      }
});

“sizes”只包含8到112之间的整数,增量为4。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

上述帖子意味着您应该在编辑器中添加CaretListener。当sselection被更改时,插入位置更新并调用侦听器。然后更新套件的InputAttributes。您可以访问属性并获取当前插入符号位置(选择)的字体大小。

答案 1 :(得分:1)

向您的文本窗格添加插入符侦听器,以调用组合框的更新。