JScrollBar是什么

JScrollBar是滚动条;用户在滚动条内移动滑块可确定显示区域中的内容。

导入

import javax.swing.JScrollBar;

创建

第一种:

JScrollBar bar=new JScrollBar();

这里是创建了一个垂直方向的滚动条,并且它的默认参数为

  • minimum = 0
  • maximum = 100
  • value = 0
  • extent = 10

第二种:

JScrollBar bar=new JScrollBar(JScrollBar.HORIZONTAL);

在这里HORIZONTAL控制滚动条的方向

  • HORIZONTAL 水平方向
  • VERTICAL 垂直方向
  • NO_ORIENTATION 不具有方向

并且它的默认参数值和第一种相同:

  • minimum = 0
  • maximum = 100
  • value = 0
  • extent = 10

第三种:
如果我们想自己写它这四种值


public JScrollBar(int orientation,
                  int value,
                  int extent,
                  int min,
                  int max)

orientation代表指定方向
value代表当前值
extent代表跨度:可见区域的大小;这里设置为0,我发现设置为15最大值就会少15
min代表最小值
max代表最大值

JScrollBar bar=new JScrollBar(JScrollBar.HORIZONTAL, 50,0,1,150);

这就是创建了一个当前值为50,范围0,最小1,最大150的滚动条

setValues设置四个参数值的大小

除了在创建的时候就设置好参数值的大小,也可以通过setValues来设置

bar.setValues(50,10,0,100);
  • 50代表当前值
  • 10代表跨度
  • 0代表最小值
  • 100代表最大值

getValue获得当前值的大小

bar.getValue();

返回当前值

addAdjustmentListener添加监听

这里实现的效果是:当用户拉动滚动条的时候,获取当前值,并且显示到label上面。

        JLabel label1=new JLabel("",JLabel.CENTER);

        bar.addAdjustmentListener(e->{
            int v=e.getValue();
            label1.setText("当前"+v);

        });

完整代码

file

import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollBar;

public class Source3 extends JFrame{
    Source3(){

        JLabel label1=new JLabel("",JLabel.CENTER);

    //  JScrollBar bar=new JScrollBar(JScrollBar.HORIZONTAL);

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

        bar.setValues(50,10,0,100);
        bar.addAdjustmentListener(e->{
            int v=e.getValue();
            label1.setText("当前"+v);

        });

        add("Center",label1);
        add("North",bar);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        setSize(500, 220);

        setVisible(true);
    }

    public static void main(String[] args) {
        new Source3();
    }
}
最后修改:2022 年 03 月 08 日
如果觉得我的文章对你有用,请随意赞赏