focusLost的问题

时间:2011-02-13 07:16:15

标签: java

我在一个名为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。 我想我需要将它转换为字符串,但无法弄清楚如何。

1 个答案:

答案 0 :(得分:2)

在你的if语句中,你将两个比较混合在一起。你想测试

  1. 是我的textfield
  2. 事件的来源
  3. 是我的文字空
  4. 因此,您必须进行两项检查并将它们与以下项组合:

    e.getSource()==gui.regPanel.regTextField 
      && gui.regPanel.regTextField.getText().trim().equals("")
    

    备注:您的焦点侦听器实际上会删除文本字段中的任何文本(如果有的话)(通过setText(""))。