У меня есть JComboBox, который при щелчке должен обновлять содержимое JLabel. Я в настоящее время использую MouseListener, чтобы определить, когда пользователь нажимает на JComboBox как так:Java Swing JComboBox, mouseListener не работает
myComboBox.getEditor().getEditorComponent().addMouseListener(
new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
updateMyJLabel(evt);
}
});
У меня нет никаких проблем на самом деле обновляет JLabel за пределами этого фрагмента. Я ранее настроил его так, чтобы я мог изменить содержимое JComboBox, а затем щелкнуть JButton, чтобы обновить JLabel, и он отлично работал. Тем не менее, быстро стало утомительно нажимать кнопку каждый раз, когда мне нужно обновить JLabel. Но когда я добавляю myComboBox в макет после использования вышеуказанного кода, код никогда не выполняется. Я также попытался поставить заявление печати выше вызова updateMyJLabel, но даже это ничего не делало, консоль была красиво, разочаровывающе пустым.
Это только мой второй день попытки развития ui, так что извините, если это глупый вопрос. Я прочитал здесь целый ряд других вопросов о SO, и некоторые люди заявили, что не используют mouseListener на JComboBox, другие сказали, что такой код отлично работает для них, поэтому я немного смущен, почему это не так, т работы.
Любые предложения и помощь с благодарностью.
Почему вы не можете просто сделать myComboBox.addMouseListener (...) '? –
@JoshM Потому что 'JComboBox' является составным компонентом, и поэтому событие мыши, вероятно, не пузырится. –