2016-09-16 44 views
-2

我有一個多選JavaSwing應用程序,它有複選框和下一個/上一個按鈕。我修改了它,使其在啓動時處於「下一步」按鈕的狀態,允許用戶按Enter/Return進入下一個屏幕。當複選框被選中時,將注意力集中在鍵盤上

現在的問題是,當用戶選擇一個複選框,下一步按鈕失去其鍵盤焦點和灰色​​輪廓。編碼器添加了黑客技巧,因此每次選中某個複選框時,該按鈕都會重新獲得焦點和灰色輪廓,但每按一下鼠標,該按鈕就會閃爍!有些屏幕有4個正確的複選框,所以按鈕閃爍4次。

我認爲這是不可接受的行爲,但他說:「預期的行爲是,當你選擇任何控件時,它顯然會把焦點放在那個元素上,你說要覆蓋不可能的Java內置功能。

這只是感覺不對。他對嗎?有沒有我可以指點他的任何資源,這將允許他在鼠標點擊時保持對複選框的關注,同時在按鈕上保留鍵盤焦點

非常感謝提前。

+1

你爲什麼不問你的*自己的問題*?代碼示例,在這種情況下,屏幕截圖將非常有用。 –

+0

嗨 - 我不認爲截圖會有幫助,因爲它只是一個帶有複選框和導航按鈕的屏幕。我現在看不到上傳圖片的方法。不知道你的意思是問自己的問題。請詳細說明。 – Walrus

+0

請告訴我們你到目前爲止所嘗試過的。堆棧溢出不是一種代碼編寫服務,但如果你至少試圖自己解決問題,人們願意幫助你。請參閱[如何創建一個最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve)和[我如何提出一個好問題?](http://stackoverflow.com/help /如何對問)。 – sarcom

回答

0

您不應該混淆鍵盤焦點 - 這隻會激怒試圖用擊鍵導航您的用戶界面的用戶。

你在找什麼是「默認按鈕」上可用JFrame S和JDialog小號的rootPane:

public JFrame makeFrame() { 
    JFrame f = new JFrame(...); 
    JButton next = new JButton("next"); 
    f.getRootPane().setDefaultButton(next); 
    return f; 
} 

public JDialog makeFrame() { 
    JDialog d = new JDialog(...); 
    JButton next = new JButton("next"); 
    d.getRootPane().setDefaultButton(next); 
    return d; 
} 
+0

編碼器將按鈕更改爲默認按鈕。現在焦點在按鈕上,用戶可以按Enter/Return進行導航,也可以選擇複選框。謝謝大家花時間回答。 – Walrus

0

您的程序員可能應該在複選框上設置setFocusable(false)。

相關問題