StyledText
インスタンスが見つからない場合、SWT からすべてのリスナーを削除するにはどうすればよいですか? メソッドを使用してすべてのインスタンスを取得しようとしましたが、StyledText.getListeners(int)
後でそれらを削除できました。しかし、必要なすべての int 値を見つけるのは大変です。これは最も簡単な方法ですか?ありがとうございました!
これが私の一時的な解決策です:
public void removeAllListener(StyledText st) {
int[] eventTypes = { 3007, 3011, SWT.Resize, SWT.Move, SWT.Dispose,
SWT.DragDetect, 3000, SWT.FocusIn, SWT.FocusOut, SWT.Gesture,
SWT.Help, SWT.KeyUp, SWT.KeyDown, 3001, 3002, SWT.MenuDetect,
SWT.Modify, SWT.MouseDown, SWT.MouseUp, SWT.MouseDoubleClick,
SWT.MouseMove, SWT.MouseEnter, SWT.MouseExit, SWT.MouseHover,
SWT.MouseWheel, SWT.Paint, 3008, SWT.Selection, SWT.Touch,
SWT.Traverse, 3005, SWT.Verify, 3009, 3010 };
for (int eventType : eventTypes) {
Listener[] listeners = st.getListeners(eventType);
for (Listener listener : listeners) {
st.removeListener(eventType, listener);
}
}
}
StyledText
デフォルト修飾子で宣言されたクラスの一部であるため、いくつかの値をコピーする必要がありました。だから私はそれらにアクセスできません。
int 値を見逃さなかったことを願っています ;)