< prev index next >

src/java.desktop/share/classes/javax/swing/plaf/basic/BasicScrollBarUI.java

Print this page
rev 17472 : Fix for bug: JDK-8075084 : JOptionPane.showMessageDialog causes JScrollBar to
move


1486     /**
1487      * Listener for cursor keys.
1488      */
1489     protected class ArrowButtonListener extends MouseAdapter
1490     {
1491         // Because we are handling both mousePressed and Actions
1492         // we need to make sure we don't fire under both conditions.
1493         // (keyfocus on scrollbars causes action without mousePress
1494         boolean handledEvent;
1495 
1496         public void mousePressed(MouseEvent e)          {
1497             if(!scrollbar.isEnabled()) { return; }
1498             // not an unmodified left mouse button
1499             //if(e.getModifiers() != InputEvent.BUTTON1_MASK) {return; }
1500             if( ! SwingUtilities.isLeftMouseButton(e)) { return; }
1501 
1502             int direction = (e.getSource() == incrButton) ? 1 : -1;
1503 
1504             scrollByUnit(direction);
1505             scrollTimer.stop();


1506             scrollListener.setDirection(direction);
1507             scrollListener.setScrollByBlock(false);
1508             scrollTimer.start();
1509 
1510             handledEvent = true;
1511             if (!scrollbar.hasFocus() && scrollbar.isRequestFocusEnabled()) {
1512                 scrollbar.requestFocus();








1513             }
1514         }
1515 
1516         public void mouseReleased(MouseEvent e)         {
1517             scrollTimer.stop();
1518             handledEvent = false;
1519             scrollbar.setValueIsAdjusting(false);
1520         }
1521     }
1522 
1523 
1524     /**
1525      * Listener for scrolling events initiated in the
1526      * <code>ScrollPane</code>.
1527      */
1528     protected class ScrollListener implements ActionListener
1529     {
1530         int direction = +1;
1531         boolean useBlockIncrement;
1532 




1486     /**
1487      * Listener for cursor keys.
1488      */
1489     protected class ArrowButtonListener extends MouseAdapter
1490     {
1491         // Because we are handling both mousePressed and Actions
1492         // we need to make sure we don't fire under both conditions.
1493         // (keyfocus on scrollbars causes action without mousePress
1494         boolean handledEvent;
1495 
1496         public void mousePressed(MouseEvent e)          {
1497             if(!scrollbar.isEnabled()) { return; }
1498             // not an unmodified left mouse button
1499             //if(e.getModifiers() != InputEvent.BUTTON1_MASK) {return; }
1500             if( ! SwingUtilities.isLeftMouseButton(e)) { return; }
1501 
1502             int direction = (e.getSource() == incrButton) ? 1 : -1;
1503 
1504             scrollByUnit(direction);
1505             scrollTimer.stop();
1506             if (SwingUtilities.windowForComponent((Component)e.getSource())
1507                                                                 .isFocused()) {
1508                 scrollListener.setDirection(direction);
1509                 scrollListener.setScrollByBlock(false);
1510                 scrollTimer.start();
1511 
1512                 handledEvent = true;
1513                 if (!scrollbar.hasFocus() && scrollbar.isRequestFocusEnabled()) {
1514                     scrollbar.requestFocus();
1515                 }
1516             } else {
1517                 scrollbar.setValueIsAdjusting(false);
1518                 ButtonModel model = ((AbstractButton)e.getSource()).getModel();
1519                 if (model != null) {
1520                     model.setPressed(false);
1521                     model.setRollover(false);
1522                 }
1523             }
1524         }
1525 
1526         public void mouseReleased(MouseEvent e)         {
1527             scrollTimer.stop();
1528             handledEvent = false;
1529             scrollbar.setValueIsAdjusting(false);
1530         }
1531     }
1532 
1533 
1534     /**
1535      * Listener for scrolling events initiated in the
1536      * <code>ScrollPane</code>.
1537      */
1538     protected class ScrollListener implements ActionListener
1539     {
1540         int direction = +1;
1541         boolean useBlockIncrement;
1542 


< prev index next >