textArea为空时,按钮不会禁用

时间:2016-03-31 14:52:52

标签: java swing documentlistener

我在一个jTextArea中添加了一个documentListener,只要textArea为空,就应该禁用一个按钮。 这仅适用于textArea为空的起点,但是当我键入内容然后删除所有文本直到textArea.getText() == ""时,该按钮仍然不会再次禁用。 这就是我写的:

textArea.getDocument().addDocumentListener(new DocumentListener() {
            @Override
            public void insertUpdate(DocumentEvent e) {

                if (textArea.getText() == null) {
                    disableButton();
                } else {
                    enableButton();
                } 



            }

            @Override
            public void removeUpdate(DocumentEvent e) {

                if (textArea.getText() == null) {
                    disableButton();
                } else {
                    enableButton();
                }

            }

            @Override
            public void changedUpdate(DocumentEvent e) {

                if (textArea.getText() == null) {
                    disableButton();
                } else {
                    enableButton();
                }
            }

            public void enableButton() {
                clearModelMenuItem.setEnabled(true);
                discardModel.setEnabled(true);
                increaseFontSize.setEnabled(true);
                decreaseFontSize.setEnabled(true);
                incMenuItem.setEnabled(true);
                decMenuItem.setEnabled(true); 
            }

这是什么问题? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:3)

这是因为您实际上没有检查文本是否为空;你正在检查它是否是nullString空的Stringnull if ("".equals(textArea.getText())) ... 之间存在差异。

你需要检查

null

如果你想检查它是否为空。

(您可能还想检查JScrollPane。)