/** * Moves the selected thumb in the specified direction by a unit increment. This method is called * when the user presses one of the arrow keys. */ @Override public void scrollByUnit(int direction) { synchronized (slider) { int delta = 1 * ((direction > 0) ? POSITIVE_SCROLL : NEGATIVE_SCROLL); if (upperThumbSelected) { int oldValue = ((RangeSlider) slider).getUpperValue(); ((RangeSlider) slider).setUpperValue(oldValue + delta); } else { int oldValue = slider.getValue(); slider.setValue(oldValue + delta); } } }
public void display() { // Initialize values. rangeSlider.setValue(3); rangeSlider.setUpperValue(7); // Initialize value display. rangeSliderValue1.setText(String.valueOf(rangeSlider.getValue())); rangeSliderValue2.setText(String.valueOf(rangeSlider.getUpperValue())); // Create window frame. JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setResizable(false); frame.setTitle("Range Slider Demo"); // Set window content and validate. frame.getContentPane().setLayout(new BorderLayout()); frame.getContentPane().add(this, BorderLayout.CENTER); frame.pack(); // Set window location and display. frame.setLocationRelativeTo(null); frame.setVisible(true); }
/** * Moves the selected thumb in the specified direction by a block increment. This method is called * when the user presses the Page Up or Down keys. */ @Override public void scrollByBlock(int direction) { synchronized (slider) { int blockIncrement = (slider.getMaximum() - slider.getMinimum()) / 10; if (blockIncrement <= 0 && slider.getMaximum() > slider.getMinimum()) { blockIncrement = 1; } int delta = blockIncrement * ((direction > 0) ? POSITIVE_SCROLL : NEGATIVE_SCROLL); if (upperThumbSelected) { int oldValue = ((RangeSlider) slider).getUpperValue(); ((RangeSlider) slider).setUpperValue(oldValue + delta); } else { int oldValue = slider.getValue(); slider.setValue(oldValue + delta); } } }
public RangeSliderDemo() { setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6)); setLayout(new GridBagLayout()); rangeSliderLabel1.setText("Lower value:"); rangeSliderLabel2.setText("Upper value:"); rangeSliderValue1.setHorizontalAlignment(JLabel.LEFT); rangeSliderValue2.setHorizontalAlignment(JLabel.LEFT); rangeSlider.setPreferredSize(new Dimension(240, rangeSlider.getPreferredSize().height)); rangeSlider.setMinimum(0); rangeSlider.setMaximum(10); // Add listener to update display. rangeSlider.addChangeListener( new ChangeListener() { public void stateChanged(ChangeEvent e) { RangeSlider slider = (RangeSlider) e.getSource(); rangeSliderValue1.setText(String.valueOf(slider.getValue())); rangeSliderValue2.setText(String.valueOf(slider.getUpperValue())); } }); add( rangeSliderLabel1, new GridBagConstraints( 0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 3, 3), 0, 0)); add( rangeSliderValue1, new GridBagConstraints( 1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 3, 0), 0, 0)); add( rangeSliderLabel2, new GridBagConstraints( 0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 3, 3), 0, 0)); add( rangeSliderValue2, new GridBagConstraints( 1, 1, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 6, 0), 0, 0)); add( rangeSlider, new GridBagConstraints( 0, 2, 2, 1, 0.0, 0.0, GridBagConstraints.NORTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); }