以下內容將JLabel與JTextArea關聯,並設置裝飾標籤的助記符。在Windows上按Alt-X將焦點移到JTextArea。無法在JLabel中使用HTML文本設置助記符
JTextArea textArea = new JTextArea(10, 20);
JLabel label = new JLabel("Text");
label.setLabelFor(textArea);
label.setDisplayedMnemonic(KeyEvent.VK_X);
但是,如果label
使用HTML,如預期的那樣顯示的標籤,但它沒有裝飾的記憶。
JTextArea textArea = new JTextArea();
JLabel label = new JLabel("<html>Text</html>"); //!!! NO DECORATION
label.setLabelFor(textArea);
label.setDisplayedMnemonic(KeyEvent.VK_X);
這是預期的行爲嗎?任何解決方法?
編輯1:修改示例以使用不是基於Aziz'響應的HTML標記的一部分的助記符。
編輯2:刪除了關於助記鍵無法使用的問題,因爲進一步的實驗表明這取決於所使用的外觀和感覺。
謝謝。基於你的回答,我嘗試了幾個不同的L&F中的實際代碼,儘管沒有一個人按照預期裝飾標籤,但按助記鍵仍然有效。我將再次編輯問題,刪除有關密鑰無法使用的評論。而強力HTML下劃線的作品。謝謝。 – clartaq
可能因爲它們都從BasicLabelUI繼承。從我所看到的情況來看,繪畫最終由javax.swing.text.html.StyleSheet完成。 – lins314159