我正在开发一个应用程序,我希望通过用户更新 JTextArea 的内容或通过按下 JButton 手动触发某些东西。
我已经使用 DocumentListener 完成了第一部分并将相关代码放入其insertUpdate
方法中。
我以前没有使用过Action
s,但我听说它们对于需要由多个控件触发某些东西的情况很有用。是否可以从 DocumentListener 触发操作?完全使用 Actions 是一个好主意,还是应该将我的代码放在正常的方法中?
(在构造函数中):
textAreaInput.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent e) {
// do something
}
public void removeUpdate(DocumentEvent e) {}
public void changedUpdate(DocumentEvent e) {}
});
和 Action,它是一个字段:
Action doSomething = new AbstractAction("Do Something!") {
@Override
public void actionPerformed(ActionEvent e) {
// do it
}
};
澄清:
JTextArea 将接收用户粘贴的文本,我想自动解析这些文本。解析依赖于 GUI 中其他地方设置的其他值;如果用户更改了这些其他值,他可能想要重新解析文本,因此需要通过按下按钮来执行相同的操作。