我在一个名为RegPanel的类中有一个文本字段。我已经实例化了我的gui。我现在需要找出焦点丢失时字段是否为空,如果是,我需要将焦点带回文本字段并显示“请输入名称”消息。 到目前为止,我已经尝试过`
public void focusLost(FocusEvent e)
{
if(e.getSource()==gui.regPanel.regTextField.getText().trim().equals(""))
{
gui.regPanel.regTextField.setText("Please enter a name");
gui.regPanel.regTextField.requestFocus();
}
else gui.regPanel.regTextField.setText("");`
以及我尝试过各种变体 如果(e.getSource()== gui.regPanel.regTextField.getText()。长度()= 0) 这些返回编译错误,如'期望值找到int'和'无法比较的类型:java.lang.Object和boolean。 我想我需要将它转换为字符串,但无法弄清楚如何。
答案 0 :(得分:2)
在你的if语句中,你将两个比较混合在一起。你想测试
因此,您必须进行两项检查并将它们与以下项组合:
e.getSource()==gui.regPanel.regTextField
&& gui.regPanel.regTextField.getText().trim().equals("")
备注:您的焦点侦听器实际上会删除文本字段中的任何文本(如果有的话)(通过setText("")
)。