Swing - JSlider 類



介紹

JSlider 類是一個元件,允許使用者透過在一個有界區間內滑動滑塊來圖形化地選擇一個值。

類宣告

以下是javax.swing.JSlider類的宣告:

public class JSlider
   extends JComponent
      implements SwingConstants, Accessible

欄位

以下是javax.swing.JSlider類的欄位:

  • protected ChangeEvent changeEvent - 每個滑塊例項只需要一個 ChangeEvent,因為事件的唯一(只讀)狀態是源屬性。

  • protected ChangeListener changeListener - changeListener(無後綴)是我們新增到滑塊模型的監聽器。

  • protected int majorTickSpacing - 主要刻度標記之間的值數量——將次要刻度標記分開的較大標記。

  • protected int minorTickSpacing - 次要刻度標記之間的值數量——出現在主要刻度標記之間的較小標記。

  • protected int orientation - 滑塊是水平的還是垂直的,預設為水平。

  • protected BoundedRangeModel sliderModel - 處理滑塊的數值最大值、最小值和當前位置值的資料模型。

  • protected boolean snapToTicks - 如果為 true,則旋鈕(及其表示的資料值)將解析為使用者定位旋鈕旁邊的最近的刻度標記。

類建構函式

序號 建構函式和描述
1

JSlider()

建立一個範圍為 0 到 100、初始值為 50 的水平滑塊。

2

JSlider(BoundedRangeModel brm)

使用指定的 BoundedRangeModel 建立一個水平滑塊。

3

JSlider(int orientation)

使用指定的方位建立範圍為 0 到 100、初始值為 50 的滑塊。

4

JSlider(int min, int max)

使用指定的最小值和最大值建立一個水平滑塊,初始值等於最小值加最大值的平均值。

5

JSlider(int min, int max, int value)

使用指定的最小值、最大值和值建立一個水平滑塊。

6

JSlider(int orientation, int min, int max, int value)

使用指定的方位和指定的最小值、最大值和初始值建立一個滑塊。

類方法

序號 方法和描述
1

void addChangeListener(ChangeListener l)

向滑塊新增 ChangeListener。

2

protected ChangeListener createChangeListener()

想要以不同方式處理模型中的 ChangeEvents 的子類可以覆蓋此方法以返回自定義 ChangeListener 實現的例項。

3

Hashtable createStandardLabels(int increment)

建立一個數值文字標籤的雜湊表,從滑塊最小值開始,並使用指定的增量。

4

Hashtable createStandardLabels(int increment, int start)

建立一個數值文字標籤的雜湊表,從指定的起始點開始,並使用指定的增量。

5

protected void fireStateChanged()

向所有已註冊對 ChangeEvents 感興趣的 ChangeListeners 傳送一個 ChangeEvent,其源是此 JSlider。

6

AccessibleContext getAccessibleContext()

獲取與此 JSlider 關聯的 AccessibleContext。

7

ChangeListener[] getChangeListeners()

返回使用 addChangeListener() 新增到此 JSlider 的所有 ChangeListeners 的陣列。

8

int getExtent()

返回 BoundedRangeModel 中的“範圍”。

9

boolean getInverted()

如果滑塊顯示的值範圍反轉,則返回 true。

10

Dictionary getLabelTable()

返回要在哪些值處繪製哪些標籤的字典。

11

int getMajorTickSpacing()

此方法返回主要刻度間距。

12

int getMaximum()

從 BoundedRangeModel 返回滑塊支援的最大值。

13

int getMinimum()

從 BoundedRangeModel 返回滑塊支援的最小值。

14

int getMinorTickSpacing()

此方法返回次要刻度間距。

15

BoundedRangeModel getModel()

返回處理滑塊三個基本屬性(最小值、最大值、值)的 BoundedRangeModel。

16

int getOrientation()

返回此滑塊的垂直或水平方向。

17

boolean getPaintLabels()

指示是否要繪製標籤。

18

boolean getPaintTicks()

指示是否要繪製刻度標記。

19

boolean getPaintTrack()

指示是否要繪製軌道(滑塊滑動的區域)。

20

boolean getSnapToTicks()

如果旋鈕(及其表示的資料值)解析為使用者定位旋鈕旁邊的最近的刻度標記,則返回 true。

21

SliderUI getUI()

獲取實現此元件的 L&F 的 UI 物件。

22

String getUIClassID()

返回呈現此元件的 L&F 類的名稱。

23

int getValue()

從 BoundedRangeModel 返回滑塊的當前值。

24

boolean getValueIsAdjusting()

返回模型中的 valueIsAdjusting 屬性。

25

protected String paramString()

返回此 JSlider 的字串表示形式。

26

void removeChangeListener(ChangeListener l)

從滑塊中移除 ChangeListener。

27

void setExtent(int extent)

設定旋鈕“覆蓋”的範圍大小。

28

void setFont(Font font)

設定此元件的字型。

29

void setInverted(boolean b)

指定 true 以反轉滑塊顯示的值範圍,並指定 false 以按正常順序排列值範圍。

30

void setLabelTable(Dictionary labels)

用於指定在任何給定值處將繪製哪個標籤。

31

void setMajorTickSpacing(int n)

此方法設定主要刻度間距。

32

void setMaximum(int maximum)

將滑塊的最大值設定為 maximum。

33

void setMinimum(int minimum)

將滑塊的最小值設定為 minimum。

34

void setMinorTickSpacing(int n)

此方法設定次要刻度間距。

35

void setModel(BoundedRangeModel newModel)

設定處理滑塊三個基本屬性(最小值、最大值、值)的 BoundedRangeModel。

36

void setOrientation(int orientation)

將滑塊的方向設定為 SwingConstants.VERTICAL 或 SwingConstants.HORIZONTAL。

37

void setPaintLabels(boolean b)

確定是否在滑塊上繪製標籤。

38

void setPaintTicks(boolean b)

確定是否在滑塊上繪製刻度標記。

39

void setPaintTrack(boolean b)

確定是否在滑塊上繪製軌道。

40

void setSnapToTicks(boolean b)

指定 true 將使旋鈕(及其表示的資料值)解析為使用者定位旋鈕旁邊的最近的刻度標記。

41

void setUI(SliderUI ui)

設定實現此元件的 L&F 的 UI 物件。

42

void setValue(int n) 將滑塊的當前值設定為 n。

43

void setValueIsAdjusting(boolean b)

設定模型的 valueIsAdjusting 屬性。

44

protected void updateLabelUIs()

透過對每個標籤呼叫 updateUI 來更新標籤表中標籤的 UI。

45

void updateUI()

將 UI 屬性重置為當前外觀和感覺中的值。

繼承的方法

此類繼承自以下類的方法:

  • javax.swing.JComponent
  • java.awt.Container
  • java.awt.Component
  • java.lang.Object

JSlider 示例

使用您選擇的任何編輯器(例如在D:/ > SWING > com > tutorialspoint > gui >中)建立以下 Java 程式。

SwingControlDemo.java

package com.tutorialspoint.gui;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

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

   public SwingControlDemo(){
      prepareGUI();
   }
   public static void main(String[] args){
      SwingControlDemo  swingControlDemo = new SwingControlDemo();      
      swingControlDemo.showSliderDemo();
   }
   private void prepareGUI(){
      mainFrame = new JFrame("Java Swing Examples");
      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 showSliderDemo(){
      headerLabel.setText("Control in action: JSlider"); 
      JSlider slider = new JSlider(JSlider.HORIZONTAL,0,100,10);
      
      slider.addChangeListener(new ChangeListener() {
         public void stateChanged(ChangeEvent e) {
            statusLabel.setText("Value : " + ((JSlider)e.getSource()).getValue());
         }
      });
      controlPanel.add(slider);      
      mainFrame.setVisible(true);     
   } 
}

使用命令提示符編譯程式。轉到D:/ > SWING並鍵入以下命令。

D:\SWING>javac com\tutorialspoint\gui\SwingControlDemo.java

如果沒有錯誤發生,則表示編譯成功。使用以下命令執行程式。

D:\SWING>java com.tutorialspoint.gui.SwingControlDemo

驗證以下輸出。

Swing JSlider
swing_controls.htm
廣告