繁体   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