我需要幫助工作getFocusOwner()。我有一個我在Java中製作的Sudoku遊戲,並且想要將箭頭鍵導航添加到程序中。我做了一些研究,發現使用焦點系統是最好的方法(如果不是,請給我一個更好的方法,我可以研究它)。getFocusOwner與自定義類
好吧,爲了測試目的,我試圖將焦點設置爲SetField,這是一個擴展JTextField的自定義類(Custom,因爲我想禁用任何不是數字的輸入)。它已被設置爲可以聚焦。我在網格中間的SetField上調用了requestFocusInWindow(),並將焦點設置爲該組件。當我嘗試檢索具有焦點的組件時,會出現問題。
這是我在做什麼,測試getFocusOwner()方法:無論我在嘗試這是什麼零部件
sGrid[40].requestFocusInWindow();
try{
System.out.println(this.getFocusOwner().getClass().getSimpleName());
} catch(NullPointerException e){
e.printStackTrace();
}
,我總是得到空指針異常。我嘗試了JButtons,JLabels,甚至在我的程序中使用JPanels。雖然重點被設置爲組件。我可以看到目標SetField中的插入符號閃爍。有什麼我做錯了嗎?預先感謝您的幫助。
我所做的只是通過打印出它返回的組件的簡單名稱來測試getFocusOwner方法。我想我必須得到哪個組件具有焦點,這樣我才能確定在按下箭頭鍵後焦點將會到達哪裏。 我會研究JFormattedTextField。無論如何,我目前的解決方案工作得並不好。 – SkylineAddict 2011-01-11 02:41:00