При нажатии на стрелку, чтобы открыть всплывающее окно на JComboBox, переопределенный setPopupVisible не вызывается, см. Минимальный пример ниже. Я просто что-то здесь упускаю или делаю что-то не так? Любые советы приветствуются:)
Цель в том, чтобы я хотел контролировать поведение видимости, особенно только скрывать его при определенных условиях, например, при проверке ввода (помните, что поле со списком доступно для редактирования).
Использование Java 8.
Создание фрейма с помощью пользовательского JComboBox:
import java.awt.Frame;
import javax.swing.BoxLayout;
public class Test {
public static void main(String[] args) {
Frame frame = new Frame();
frame.setLayout(new BoxLayout(frame, BoxLayout.Y_AXIS));
MyComboBox combo = new MyComboBox();
combo.setEditable(true);
combo.addItem("bli");
combo.addItem("bla");
combo.addItem("blu");
combo.addItem("ble");
frame.add(combo);
frame.pack();
frame.setVisible(true);
}
}
Пользовательский JComboBox:
import javax.swing.JComboBox;
public class MyComboBox extends JComboBox {
@Override
public void setPopupVisible(boolean v) {
if(!v) {
System.out.println("HIDING COMBOBOX");
super.setPopupVisible(v);
} else {
System.out.println("SHOWING COMBOBOX");
super.setPopupVisible(v);
}
}
}