Изменить значок кнопки со стрелкой JComboBox
Спасибо за ответ
но это то, что я хочу сделать:
Когда в редактируемом комбинированном ящике нажимается клавиша, я хочу, чтобы всплывающее меню jcombobox появлялось автоматически и получал текст, написанный на нем, но когда я изменил значок кнопки со стрелкой, значок изменился, но всплывающее меню не отображается. появляется при нажатии клавиши.
Когда я пытался сделать это в стиле 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
JTextComponents возвращает документ (производный
JTextField
или жеJFormattedTextField
отJComboBox
/JSpinner
)поместить значок в определения, сохраненные в
xml file
заSynt
Вы можете проверить это путем получения SynthButtonUI из JComboBOxот Synth L&F для использования
Nimbus
использовать Custom Look and Feel, часть из них переопределяет методы из
BasicXxxUI
непосредственно