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

[macos] Can't drag Java scroll bars on macOS 10.12 Sierra

XMLWordPrintable

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

      ADDITIONAL OS VERSION INFORMATION :
      ProductName: Mac OS X
      ProductVersion: 10.12
      BuildVersion: 16A201w

      A DESCRIPTION OF THE PROBLEM :
      In the initial developer beta build 16A201w of macOS 10.12 Sierra, dragging Java scroll bars doesn't work. This is reproducible in MATLAB and with the attached sample code using Java 6, 7 and 8.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      1. Download the attached sample code and compile it by executing
      % javac SwingScrollBarExample.java
      2. Run the sample code by executing
      % java SwingScrollBarExample
      3. Attempt to click and drag the scrollbars to a new position

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      The scrollbars can be dragged and the window updates to display the current scrollbar position.

      ACTUAL -
      Nothing happens. The scrollbars do not move.

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      /*
      Java Swing, 2nd Edition
      By Marc Loy, Robert Eckstein, Dave Wood, James Elliott, Brian Cole
      ISBN: 0-596-00408-7
      Publisher: O'Reilly
      */
      // SwingScrollBarExample.java
      // A quick demonstration of JScrollBar (both vertical and horizontal).
      //

      import java.awt.BorderLayout;
      import java.awt.event.AdjustmentEvent;
      import java.awt.event.AdjustmentListener;

      import javax.swing.JFrame;
      import javax.swing.JLabel;
      import javax.swing.JPanel;
      import javax.swing.JScrollBar;

      public class SwingScrollBarExample extends JPanel {

        JLabel label;

        public SwingScrollBarExample() {
          super(true);
          label = new JLabel();
          setLayout(new BorderLayout());

          JScrollBar hbar = new JScrollBar(JScrollBar.HORIZONTAL, 30, 20, 0, 300);
          JScrollBar vbar = new JScrollBar(JScrollBar.VERTICAL, 30, 40, 0, 300);

          hbar.setUnitIncrement(2);
          hbar.setBlockIncrement(1);

          hbar.addAdjustmentListener(new MyAdjustmentListener());
          vbar.addAdjustmentListener(new MyAdjustmentListener());

          add(hbar, BorderLayout.SOUTH);
          add(vbar, BorderLayout.EAST);
          add(label, BorderLayout.CENTER);
        }

        class MyAdjustmentListener implements AdjustmentListener {
          public void adjustmentValueChanged(AdjustmentEvent e) {
            label.setText(" New Value is " + e.getValue() + " ");
            repaint();
          }
        }

        public static void main(String s[]) {
          JFrame frame = new JFrame("Scroll Bar Example");
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          frame.setContentPane(new SwingScrollBarExample());
          frame.setSize(200, 200);
          frame.setVisible(true);
        }
      }
      ---------- END SOURCE ----------

            aniyogi Avik Niyogi (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved: