簡體   English   中英

更改JComboBox箭頭按鈕的圖標

[英]Change icon of JComboBox arrow button

謝謝你的答復

但這就是我想要做的:

當在可編輯的組合框中按下某個鍵時,我希望jcombobox的彈出菜單自動出現,並獲得寫在其中的文本,但是當我更改了箭頭按鈕的圖標時,圖標已更改,但彈出菜單沒有按下鍵時出現t。

當我嘗試在Windows外觀中做到這一點時,它運行良好沒有任何問題,但在Synth的外觀和感覺,它沒有用。 我搜索了兩天,但我無法解決問題。

我試圖使用文檔監聽器但沒有改變或我沒有正確使用它

我希望這次我的問題得到澄清

JTextField editor;
.
.
.
editor = (JTextField) jComboBox1.getEditor().getEditorComponent();

\\ 

editor.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {

    if (jComboBox1.isDisplayable())
    {
        jComboBox1.setPopupVisible(true);
    }

         System.out.println(editor.getText());
}
});

\\ change arrowbutton icon

jComboBox1.setUI(new SynthComboBoxUI() {

   @Override
   protected JButton createArrowButton() {
      JButton btn = new JButton();
      btn.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Image/error3.png")));
      return btn;
   }
});
  1. 不要使用KeyListener ,使用DocumentFilter過濾不需要的字符或DocumentListener

  2. JTextComponents返回Document(從JComboBox / JSpinner派生的JTextFieldJFormattedTextField

  3. 圖標 ,以保存到定義xml fileSynt ,您可以通過從JComboBox中汲取SynthButtonUI來測試

  4. 從Synth L&F到使用Nimbus

  5. 使用自定義外觀 ,其中一部分直接覆蓋BasicXxxUI方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM