检测组件的FocusEvent是丢失还是获得

时间:2008-12-02 15:48:00

标签: java swing events awt

我实现了一个EventQueue,并在发送AWTEvents时收到通知。 我等到FocusEvent的实例发送到dispatchEvent方法。

FocusEvent本身没有一个方法来询问是否获得或丢失了组件的焦点。 methode paramString返回一个放置信息的String,但我不想破解或解析String。一个包含调用可以给我答案,但是返回字符串不是常数,因此将来可能会改变。

FocusEvent的paramString方法就像:

 switch(id) {
      case FOCUS_GAINED:
          typeStr = "FOCUS_GAINED";
          break;
      case FOCUS_LOST:
          typeStr = "FOCUS_LOST";
          break;
      default:
          typeStr = "unknown type";
    }
    return typeStr + (temporary ? ",temporary" : ",permanent") +
        ",opposite=" + getOppositeComponent();

您是否知道此问题的另一种解决方案。

1 个答案:

答案 0 :(得分:2)

“evt.getID()”有什么问题?它会返回FOCUS_LOSTFOCUS_GAINED