将Action与DocumentListener一起使用

Lui*_*hys 7 java swing action jtextcomponent documentlistener

我正在开发一个应用程序,我希望通过用户更新JTextArea的内容来触发某些内容,或者通过按下JButton手动触发.

我已经使用DocumentListener完成了第一部分,并将相关代码放在其insertUpdate方法中.

我之前没有使用过Actions,但我听说它们适用于需要多个控件触发的情况.是否可以从DocumentListener触发操作?根本不使用Actions是一个好主意,还是应该将我的代码放在普通方法中?

(在构造函数中):

    textAreaInput.getDocument().addDocumentListener(new DocumentListener() {
        public void insertUpdate(DocumentEvent e) {
            // do something
        }
        public void removeUpdate(DocumentEvent e) {}
        public void changedUpdate(DocumentEvent e) {}
    });
Run Code Online (Sandbox Code Playgroud)

和行动,这是一个领域:

Action doSomething = new AbstractAction("Do Something!") {
    @Override
    public void actionPerformed(ActionEvent e) {
        // do it
    }
};
Run Code Online (Sandbox Code Playgroud)

澄清:

JTextArea将接收用户粘贴的文本,我想自动解析.解析依赖于GUI中其他位置设置的其他值; 如果用户更改了这些其他值,他可能想要重新解析文本,因此需要通过按下按钮来执行相同的操作.

tra*_*god 3

您可以调用该actionPerformed()方法,无论它Action是否在 an 中。这里有一个例子。