java-更改JComboBox箭头按钮的图标
作者:互联网
谢谢您的回复
但这是我想做的:
当在可编辑的组合框中按下一个键时,我希望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;
}
});
解决方法:
>不要使用KeyListener,请使用DocumentFilter过滤不需要的字符或DocumentListener
> JTextComponents返回文档(从JComboBox / JSpinner派生的JTextField或JFormattedTextField)
>将Icon放入保存到Synt的xml文件中的定义中,可以通过从JComboBOx派生SynthButtonUI进行测试
>从Synth L& F使用Nimbus
>使用Custom Look and Feel,其中一部分直接从BasicXxxUI覆盖方法
标签:jcombobox,look-and-feel,swing,java,synth 来源: https://codeday.me/bug/20191101/1979993.html