Swing JScrollBar類

2019-10-16 22:10:42

JScrollBar類是捲動條的實現。

類宣告

以下是javax.swing.JScrollBar類的宣告 -

public class JScrollBar
   extends JComponent
      implements Adjustable, Accessible

欄位

以下是javax.swing.ImageIcon類的欄位 -

  • protected int blockIncrement
  • protected BoundedRangeModel model - 表示捲動條的最小值,最大值,範圍(又名「visibleAmount」)和當前值的模型。
  • protected int orientation
  • protected int unitIncrement

類建構函式

編號 建構函式 描述
1 JScrollBar() 使用初始值建立垂直捲動條。
2 JScrollBar(int orientation) 建立具有指定方向和初始值的捲動條。
3 JScrollBar(int orientation, int value, int extent, int min, int max) 建立具有指定方向,值,範圍,最小值和最大值的捲動條。

類方法

編號 方法 描述
1 void addAdjustmentListener(AdjustmentListener l) 新增一個AdjustmentListener。
2 protected void fireAdjustmentValueChanged(int id, int type, int value) 通知偵聽器捲動條的模型已更改。
3 AccessibleContext getAccessibleContext() 獲取與此JScrollBar關聯的AccessibleContext。
4 AdjustmentListener[] getAdjustmentListeners() 返回使用addAdjustmentListener()新增到此JScrollBar的所有AdjustmentListener的陣列。
5 int getBlockIncrement() 用於向後相容java.awt.Scrollbar
6 int getBlockIncrement(int direction) 給定一個塊(通常是「頁面」)向上/向下請求,返回更改捲動條值的數量。
7 int getMaximum() 捲動條的最大值是最大值 - 範圍。
8 Dimension getMaximumSize() 捲動條沿其捲動軸是靈活的,沿另一個軸是剛性的。
9 int getMinimum() 返回捲動條支援的最小值(通常為零)。
10 Dimension getMinimumSize() 捲動條沿其捲動軸是靈活的,沿另一個軸是剛性的。
11 BoundedRangeModel getModel() 返回處理捲動條的四個基本屬性的資料模型:minimummaximumvalueextent
12 int getOrientation() 返回元件的方向(水平或垂直)。
13 ScrollBarUI getUI() 返回實現此元件外觀的委託。
14 String getUIClassID() 返回此元件的LookAndFeel類的名稱。
15 int getUnitIncrement() 用於向後相容java.awt.Scrollbar
16 int getUnitIncrement(int direction) 給定單位向上/向下請求,返回更改捲動條值的數量。
17 int getValue() 返回捲動條的值。
18 boolean getValueIsAdjusting() 如果拖動捲動條旋鈕,則為True
19 int getVisibleAmount() 返回捲動條的範圍,即visibleAmount
20 protected String paramString() 返回此JScrollBar的字串表示形式。
21 void removeAdjustmentListener(AdjustmentListener l) 刪除AdjustmentEvent偵聽器。
22 void setBlockIncrement(int blockIncrement) 設定blockIncrement屬性。
23 void setEnabled(boolean x) 啟用元件以便可以更改旋鈕位置。
24 void setMaximum(int maximum) 設定模型的最大屬性。
25 void setMinimum(int minimum) 設定模型的最小屬性。
26 void setModel(BoundedRangeModel newModel) 設定處理捲動條的四個基本屬性的模型:最小值,最大值,值,範圍。
27 void setOrientation(int orientation) 將捲動條的方向設定為VERTICALHORIZONTAL
28 void setUI(ScrollBarUI ui) 設定呈現此元件的L&F物件。
29 void setUnitIncrement(int unitIncrement) 設定unitIncrement屬性。
30 void setValue(int value) 設定捲動條的值。
31 void setValueIsAdjusting(boolean b) 設定模型的valueIsAdjusting屬性。
32 void setValues(int newValue, int newExtent, int newMin, int newMax) 在強制引數遵循通常的約束後設定四個BoundedRangeModel屬性。
33 void setVisibleAmount(int extent) 設定模型的範圍屬性。
34 void updateUI() 覆蓋JComponent.updateUI

方法繼承

該類繼承以下類中的方法 -

  • java.lang.Object

JScrollBar範例

使用編輯器建立以下Java程式 -


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

public class JScrollBarExample {
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;

   public JScrollBarExample(){
      prepareGUI();
   }
   public static void main(String[] args){
       JScrollBarExample  swingControlDemo = new JScrollBarExample();      
      swingControlDemo.showScrollbarDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing JScrollBar範例");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));

      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new JLabel("", JLabel.CENTER);        
      statusLabel = new JLabel("",JLabel.CENTER);    
      statusLabel.setSize(350,100);

      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }
   private void showScrollbarDemo() {                                       
      headerLabel.setText("Control in action: JScrollbar"); 

      final JScrollBar horizontalScroller = new JScrollBar(JScrollBar.HORIZONTAL);
      final JScrollBar verticalScroller = new JScrollBar();
      verticalScroller.setOrientation(JScrollBar.VERTICAL);
      horizontalScroller.setMaximum (100);
      horizontalScroller.setMinimum (1);
      verticalScroller.setMaximum (100);
      verticalScroller.setMinimum (1);

      horizontalScroller.addAdjustmentListener(new AdjustmentListener() {
         @Override
         public void adjustmentValueChanged(AdjustmentEvent e) {
            statusLabel.setText("水平: "
               +horizontalScroller.getValue() 
               +" , 垂直: "
               + verticalScroller.getValue());
            }
      });
      verticalScroller.addAdjustmentListener(new AdjustmentListener() {
         @Override
         public void adjustmentValueChanged(AdjustmentEvent e) {
            statusLabel.setText("水平: "
               +horizontalScroller.getValue() 
               +" , 垂直: "+ verticalScroller.getValue());
         }
      });
      controlPanel.add(horizontalScroller);
      controlPanel.add(verticalScroller);

      mainFrame.setVisible(true);  
   } 
}

執行上面範例程式碼,得到以下結果: