Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 摆动鼠标滚动不滚动下拉菜单_Java_Swing_Events_Scrollbar_Mouseevent - Fatal编程技术网

Java 摆动鼠标滚动不滚动下拉菜单

Java 摆动鼠标滚动不滚动下拉菜单,java,swing,events,scrollbar,mouseevent,Java,Swing,Events,Scrollbar,Mouseevent,我正在尝试向下滚动一个下拉框。尽管调用了mouseWheelListener,但scrool事件后滚动条并没有移动,下拉框刚刚关闭。问题是在事件处理程序中设置后,滚动条的值并没有更改,它始终为0 以下是代码的一部分: public MyClas extends JPopupMenu implements AdjustmentListener, ContainerListener, ChangeListener{ public MyClass(){ ..... setLayou

我正在尝试向下滚动一个下拉框。尽管调用了mouseWheelListener,但scrool事件后滚动条并没有移动,下拉框刚刚关闭。问题是在事件处理程序中设置后,滚动条的值并没有更改,它始终为0

以下是代码的一部分:

public MyClas extends JPopupMenu implements AdjustmentListener, ContainerListener, ChangeListener{
  public MyClass(){
    .....
    setLayout(new ScrollablePopupMenuLayout(this, defaultWidth));
    JScrollBar scrollBar = new JScrollBar(JScrollBar.VERTICAL);
    scrollBar.setFocusable(false);
    scrollBar.addAdjustmentListener(this);
    addContainerListener(this);
    addMouseWheelListener(new MouseWheelListener(){
         // Here is invoked after scrolling
         public void mouseWheelMoved(MouseWheelEvent e){
         {
              int x = 1;
              scrollBar.setValue(scrollBar.getValue() + x)
         }

    });
}

在mouseWheelEvent方法中添加以下行后,它起作用:

e.consume();

为了更快地获得更好的帮助,发布一个or。编辑的目的是什么?MCVE/SSCCE在哪里?为什么?为什么不使用JScrollPane呢?它已经在一年前编写好了,需要做更多的更改才能切换到JScrollPane。