在我的文本编辑器中,我提供了通过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。
非常感谢任何帮助。
答案 0 :(得分:3)
上述帖子意味着您应该在编辑器中添加CaretListener。当sselection被更改时,插入位置更新并调用侦听器。然后更新套件的InputAttributes。您可以访问属性并获取当前插入符号位置(选择)的字体大小。
答案 1 :(得分:1)
向您的文本窗格添加插入符侦听器,以调用组合框的更新。