当 textArea 为空时,按钮不会被禁用
Posted
技术标签:
【中文标题】当 textArea 为空时,按钮不会被禁用【英文标题】:button doesn't turn disabled when textArea is empty 【发布时间】:2016-07-20 02:41:41 【问题描述】:我向 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);
这里有什么问题? 感谢您的帮助!
【问题讨论】:
将textArea.getText() == null
更改为textArea.getText().isEmpty()
What is the problem here?
- 你的SSCCE在哪里,就像你之前的许多问题一样?您的调试代码在哪里显示您正在测试的变量的值,就像您在之前的问题中被要求做的那样?在发布问题之前进行自己的基本调试。
【参考方案1】:
这是因为您实际上并没有检查文本是否为空;你正在检查它是否是null
。为空的 String
和为 null
的 String
之间存在区别。
你需要检查
if ("".equals(textArea.getText())) ...
如果要检查是否为空。
(您可能还想检查null
。)
【讨论】:
以上是关于当 textArea 为空时,按钮不会被禁用的主要内容,如果未能解决你的问题,请参考以下文章
如何在对话框中将事件侦听器绑定到JavaFX TextFields。当字段为空时,“确定”按钮将被禁用,反之亦然