Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8156188

JComboBox content interferes with mouse wheel scrolling

XMLWordPrintable

    • b18

      FULL PRODUCT VERSION :
      java version "1.8.0_92"
      Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
      Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Darwin rberlin-mbp15.guidewire.com 13.4.0 Darwin Kernel Version 13.4.0: Mon Jan 11 18:17:34 PST 2016; root:xnu-2422.115.15~1/RELEASE_X86_64 x86_64

      A DESCRIPTION OF THE PROBLEM :
      If you are pointing at content inside a JScrollPane, and the mouse pointer is on a ComboBox, mouse scroll wheel does not respond. Likely this is a side-effect of the fix for http://bugs.java.com/view_bug.do?bug_id=8033069

      REGRESSION. Last worked in version 8u73

      ADDITIONAL REGRESSION INFORMATION:
      java version "1.8.0_51"
      Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
      Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)


      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Compile and run the following program. Try mouse wheel scrolling with the mouse pointer in various places: over the scrollbar, over the combo boxes, over the labels.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Scroll wheel should work no matter what portion of the scrolled content the mouse pointer is over.
      ACTUAL -
      Scroll wheel does not respond when the mouse pointer is over the combo boxes.

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      package com.guidewire;

      import javax.swing.*;
      import java.awt.*;

      public class ScrollWithComboBox extends JFrame {
          public ScrollWithComboBox() {
              super("Scroll with ComboBox");
              setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

              JPanel panel = new JPanel(new GridLayout(20, 2));

              for (int i = 1; i <= 20; ++i) {
                  panel.add(new JLabel("Row " +i+ ":"));
                  JComboBox comboBox = new JComboBox<String>(new String[]{"a", "b", "c"});
                  panel.add(comboBox);
              }

              JScrollPane pane = new JScrollPane(panel);
              this.setContentPane(pane);
              this.setSize(256, 256);
          }

          public static void main(String[] args) {
              new ScrollWithComboBox().setVisible(true);
          }
      }
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      Using an older version of the JDK is the only thing that works.

      Note that the actual bug is showing up in our IntelliJ plugin. This will affect a large number of developers.


            aivanov Alexey Ivanov
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: