在激活/停用或打開/關閉某些對話框后,我無法確定應用程式中的焦點所在的位置。
有沒有一種方法可以安全地將事件傳遞給組件層次結構,以便在焦點更改時通知到哪里?
例如,在 Smalltalk 環境中,出于測驗原因,您可以在 Window/SubPane(即 JComponent)級別上重新實作 #requestFocus 并在焦點所在的位置設定一個除錯陳述句。
你能在 Java 中做類似的事情,還是有我缺少的機制?
uj5u.com熱心網友回復:
我不完全確定您要對此做什么,但要回答您的問題,您可以為每個元素添加一個 FocusListener。然后使用 FocusGained 函式撰寫一個 avriable。
int focus = 0;
textField1.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
focus = 1;
}
@Override
public void focusLost(FocusEvent e) {
}
});
textField2.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
focus = 2;
}
@Override
public void focusLost(FocusEvent e) {
}
});
uj5u.com熱心網友回復:
所以表面上的罪魁禍首是除錯工具提示。完全洗掉這些并添加 Steffi 的日志記錄代碼讓我確信這已經解決了。感謝大家,我又學到了一些新東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/446687.html
