Java Swing JScrollBar

2018-01-09 19:23 更新

Java Swing教程 - Java Swing JScrollBar


JScrollBar有一個(gè)orientation屬性,它決定了它是水平還是垂直顯示。

JScrollBar有一個(gè)orientation屬性,它決定了它是水平還是垂直顯示。...

當(dāng)單擊箭頭按鈕時(shí),旋鈕在軌道上朝向箭頭按鈕移動(dòng)。

我們可以通過鼠標(biāo)拖動(dòng)拇指向任一端。要移動(dòng)縮略圖,請(qǐng)單擊軌道。

下表列出了JScrollBar和JScrollBar的常用屬性獲取/設(shè)置這些屬性的方法。

ID 方法/說明
1 方法/說明...
2 getValue()setValue()旋鈕的位置是其值。 最初,它被設(shè)置為零。
3 getVisibleAmount()setVisibleAmount()它是旋鈕的大小。 它與軌道的大小成比例地表示。
4 getMinimum()setMinimum()它表示的最小值。 默認(rèn)值為零。
5 getMinimum()setMinimum()它表示的最小值。 默認(rèn)值為零。...

以下代碼演示如何創(chuàng)建JScrollBar具有不同的性質(zhì)。

創(chuàng)建具有所有默認(rèn)屬性的JScrollBar。其方向?qū)榇怪?,?dāng)前值0,范圍10,最小值0和最大值100。

JScrollBar sb1  = new JScrollBar();

使用默認(rèn)值創(chuàng)建水平JScrollBar

JScrollBar sb2  = new JScrollBar(JScrollBar.HORIZONTAL);

要?jiǎng)?chuàng)建當(dāng)前值為50的水平JScrollBar,  范圍15,最小1和最大150。

JScrollBar sb3  = new JScrollBar(JScrollBar.HORIZONTAL, 50,   15,   1, 150);

JScrollBar的當(dāng)前值只能在其最小值和(最大 - 擴(kuò)展)值之間設(shè)置。

要處理來自JScrollBar的AdjustmentListener,請(qǐng)將AdjustmentListener添加到名為myScrollBar的JScrollBar。

myScrollBar.addAdjustmentListener((AdjustmentEvent e)  ->  {
    if (!e.getValueIsAdjusting())  {
        // The logic for value changed  goes  here
    }
});


JTextField與用于滾動(dòng)的JScrollBar

以下代碼顯示如何使用BoundedRangeModel鏈接JTextField和JScrollBar。

import java.awt.BorderLayout;
/*from  w  w  w  .j ava2 s .  co  m*/
import javax.swing.BoundedRangeModel;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollBar;
import javax.swing.JTextField;

public class Main {

  public static void main(String args[]) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    final JTextField textField = new JTextField();

    JScrollBar scrollBar = new JScrollBar(JScrollBar.HORIZONTAL);

    JPanel panel = new JPanel();
    panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

    BoundedRangeModel brm = textField.getHorizontalVisibility();
    scrollBar.setModel(brm);
    panel.add(textField);
    panel.add(scrollBar);


    frame.add(panel, BorderLayout.NORTH);
    frame.setSize(300, 100);
    frame.setVisible(true);
  }
}
     
     


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)