Java Tutorial/Swing/JScrollBar

Материал из Java эксперт
Перейти к: навигация, поиск

Always display scrollbar

   <source lang="java">

import java.awt.BorderLayout; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.ScrollPaneConstants; import javax.swing.WindowConstants; public class Main extends JFrame {

 JTextArea textArea;
 public Main() {
   super();
   this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
   Container contentPane = this.getContentPane();
   textArea = new JTextArea();
   JScrollPane pane = new JScrollPane(textArea, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
       ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
   contentPane.add(pane, BorderLayout.CENTER);
 }
 public static void main(String[] args) {
   JFrame f = new Main();
   f.setSize(300, 200);
   f.setVisible(true);
 }

}</source>





Customizing a JScrollBar Look and Feel

Property StringObject TypescrollbarColorScrollBar.actionMapActionMapScrollBar.allowsAbsolutePositioningBooleanScrollBar.ancestorInputMapInputMapScrollBar.ancestorInputMap.RightToLeftInputMapScrollBar.backgroundColorScrollBar.borderBorderScrollBar.darkShadowColorScrollBar.focusInputMapObject[ ]ScrollBar.focusInputMap.RightToLeftInputMapScrollBar.foregroundColorScrollBar.gradientListScrollBar.highlightColorScrollBar.maximumThumbSizeDimensionScrollBar.minimumThumbSizeDimensionScrollBar.shadowColorScrollBar.squareButtonsBooleanScrollBar.thumbColorScrollBar.thumbDarkShadowColorScrollBar.thumbHeightIntegerScrollBar.thumbHighlightColorScrollBar.thumbShadowColorScrollBar.trackColorScrollBar.trackForegroundColorScrollBar.trackHighlightColorScrollBar.trackHighlightForegroundColorScrollBar.widthIntegerScrollBarUIString


JScrollBar and Adjustment event

   <source lang="java">

import java.awt.Adjustable; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import javax.swing.JFrame; import javax.swing.JScrollBar; public class Main {

 JScrollBar scrollBarVertical = new JScrollBar();
 JScrollBar scrollbarHorizontal = new JScrollBar(Adjustable.HORIZONTAL);
 Main() {
   JFrame f = new JFrame();
   f.setLayout(new FlowLayout());
   f.setSize(280, 300);
   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   scrollBarVertical.setPreferredSize(new Dimension(20, 200));
   scrollbarHorizontal.setPreferredSize(new Dimension(200, 20));
   scrollbarHorizontal.setValue(50);
   scrollBarVertical.addAdjustmentListener(new AdjustmentListener() {
     public void adjustmentValueChanged(AdjustmentEvent ae) {
       if (scrollBarVertical.getValueIsAdjusting())
         return;
       System.out.println("Value of vertical scroll bar: " + ae.getValue());
     }
   });
   scrollbarHorizontal.addAdjustmentListener(new AdjustmentListener() {
     public void adjustmentValueChanged(AdjustmentEvent ae) {
       System.out.println("Value of horizontal scroll bar: " + ae.getValue());
     }
   });
   f.add(scrollBarVertical);
   f.add(scrollbarHorizontal);
   f.setVisible(true);
 }
 public static void main(String args[]) {
   new Main();
 }

}</source>





Listening to Scrolling Events with a ChangeListener

   <source lang="java">

import java.awt.BorderLayout; import javax.swing.BoundedRangeModel; import javax.swing.JFrame; import javax.swing.JScrollBar; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; class BoundedChangeListener implements ChangeListener {

 public void stateChanged(ChangeEvent changeEvent) {
   Object source = changeEvent.getSource();
   if (source instanceof BoundedRangeModel) {
     BoundedRangeModel aModel = (BoundedRangeModel) source;
     if (!aModel.getValueIsAdjusting()) {
       System.out.println("Changed: " + aModel.getValue());
     }
   } else {
     System.out.println("Something changed: " + source);
   }
 }

} public class ScrollBarSample {

 public static void main(String args[]) {
   ChangeListener changeListener = new BoundedChangeListener();
   JScrollBar aJScrollBar = new JScrollBar(JScrollBar.HORIZONTAL);
   BoundedRangeModel model = aJScrollBar.getModel();
   model.addChangeListener(changeListener);
   JFrame frame = new JFrame("ScrollBars R Us");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.add(aJScrollBar, BorderLayout.NORTH);
   frame.setSize(300, 200);
   frame.setVisible(true);
 }

}</source>





The simplest of the bounded range components is the JScrollBar

Handling Scrolling Events



   <source lang="java">

import java.awt.BorderLayout; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import javax.swing.JFrame; import javax.swing.JScrollBar;

public class ScrollBarSample {

 public static void main(String args[]) {
   AdjustmentListener adjustmentListener = new AdjustmentListener() {
     public void adjustmentValueChanged(AdjustmentEvent adjustmentEvent) {
       System.out.println("Adjusted: " + adjustmentEvent.getValue());
     }
   };
   JScrollBar oneJScrollBar = new JScrollBar(JScrollBar.HORIZONTAL);
   oneJScrollBar.addAdjustmentListener(adjustmentListener);
   JFrame frame = new JFrame("ScrollBars R Us");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   frame.add(oneJScrollBar, BorderLayout.NORTH);
   frame.setSize(300, 200);
   frame.setVisible(true);
 }

}</source>