Я проверил стандартное поведение комбинированного списка.И когда я прокручиваю всплывающее окно, оно не закрывается.Но когда я прокручиваю вне или даже над списком, он исчезает.
Я не знаю, хотите ли вы чего-то подобного, но я добавил слушателя колесика мыши в комбинированный список таким образом, если я обнаружу движение над комбинированным списком, я повторно показываю всплывающее окно.- Этот бит лишь частично решает проблему, заключающуюся в том, что при прокрутке над выпадающим списком мыши на колесе мыши не будет отображаться поле со списком.
import java.awt.HeadlessException;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class ComboBoxMouseWheel
{
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
@Override
public void run()
{
createGUI();
}
});
}
private static void createGUI() throws HeadlessException
{
String[] items = new String[]
{
"oasoas", "saas", "saasas"
};
final JComboBox jcb = new JComboBox(items);
jcb.addMouseWheelListener(new MouseWheelListener()
{
@Override
public void mouseWheelMoved(MouseWheelEvent e)
{
System.out.println("ohjasajs");
e.consume();
jcb.showPopup();
}
});
JPanel p = new JPanel();
p.add(jcb);
JPanel contentPane = new JPanel();
contentPane.add(p);
JFrame f = new JFrame();
f.setContentPane(contentPane);
f.setSize(300, 300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
Надеюсь, что это даже полезноЕсли вам удастся решить другой путь, пожалуйста, поделитесь им с нами.Решение, предоставленное @trashgod, кажется выполнимым, но выглядит очень тщательно продуманным :), поэтому я предлагаю свой подход к альтернативе.
Удачи, Боро.