Java摇摆 | JS滑块
JSlider 是Java Swing 包的一部分。 JSlider 是一个滑块的实现。该组件允许用户通过在有界值内滑动旋钮来选择一个值。滑块可以显示主要刻度线以及两个主要刻度线之间的次要刻度线,旋钮只能定位在这些点上。
该类的构造函数是:
- JSlider() :创建一个水平方向的新滑块,最大值和最小值分别为 100 和 0,滑块值设置为 50。
- JSlider(BoundedRangeModel b) : 创建一个水平方向和指定边界范围模型的新 Slider。
- JSlider(int o) :创建一个具有指定方向的新滑块,最大值和最小值分别为 100 和 0,滑块值设置为 50。
- JSlider(int min, int max) :创建一个水平方向的新滑块,并指定最大值和最小值,并将滑块值设置为最大值和最小值的平均值。
- JSlider(int min, int max, int value) :创建一个新的滑块,具有水平方向和最大值、最小值和指定的滑块值。
- JSlider(int o, int min, int max, int value) :创建一个新的滑块,具有方向和最大值、最小值以及指定的滑块值。
常用功能
- setOrientation(int n) :将滑块的方向设置为指定值
- setValue(int v) :将滑块的值设置为指定值
- setPaintTicks(boolean b) : boolean 值决定是否在滑块上绘制刻度
- setPaintTrack(boolean b) : 布尔值决定是否在滑块上绘制轨道
- setMajorTickSpacing(int n) :设置主要刻度的间距。
- setMinorTickSpacing(int n) :设置小刻度的间距。
- setFont(Font f) : 设置滑块文本的字体
- setMaximum(int m) : 设置滑块的最大值
- setMinimum(int m) : 设置滑块的最小值
- updateUI() :将 UI 属性重置为当前外观的值。
- setValueIsAdjusting(boolean b) :将模型的 valueIsAdjusting 属性设置为 boolean b。
- setUI(SliderUI ui) :设置实现此组件外观的 UI 对象。
- setSnapToTicks(boolean b):如果传递 true,则滑块位置放置到最近的刻度。
- setModel(BoundedRangeModel n) :设置处理滑块三个基本属性的 BoundedRangeModel:最小值、最大值、值。
- setLabelTable(Dictionary l) :用于指定将在任何给定值处绘制的标签。
- setInverted(boolean b):如果传递 true,则滑块设置为反转。
- imageUpdate(Image img, int s, int x, int y, int w, int h):当图像改变时重新绘制组件。
- setExtent(int extent) :设置旋钮“覆盖”范围的大小。
- removeChangeListener(ChangeListener l):从滑块中移除一个 ChangeListener。
- getModel():返回处理滑块三个基本属性的 BoundedRangeModel:最小值、最大值、值。
- getSnapToTicks() :如果旋钮(及其代表的数据值)解析到用户放置旋钮的位置最近的刻度线,则返回 true。
- getUI():获取实现该组件 L&F 的 UI 对象。
- getPaintTrack() :返回是否绘制轨道。
- getPaintTicks() : 返回是否绘制刻度
- getPaintLabels() : 返回标签是否被绘制
- getOrientation() :返回组件的方向。
- getMinorTickSpacing() :返回次要刻度间距
- getMinimum():返回最小值
- getMaximum():返回最大值
- getMajorTickSpacing() :返回主要刻度间距。
- addChangeListener(ChangeListener l):添加一个 ChangeListener 到滑块。\
- createChangeListener() :为组件创建更改监听器
- setUI(SliderUI ui) :设置呈现此组件的外观对象。
- getUI() :返回呈现此组件的外观对象。
- paramString() :返回此 JSlider 的字符串表示形式。
- getUIClassID() :返回呈现此组件的外观类的名称。
- getAccessibleContext() :获取与此 JSlider 关联的 AccessibleContext。
以下程序将说明 JSlider 的使用
1.程序创建一个简单的JSlider
Java
// java Program to create a simple JSlider
import javax.swing.event.*;
import java.awt.*;
import javax.swing.*;
class solve extends JFrame {
// frame
static JFrame f;
// slider
static JSlider b;
// main class
public static void main(String[] args)
{
// create a new frame
f = new JFrame("frame");
// create a object
solve s = new solve();
// create a panel
JPanel p = new JPanel();
// create a slider
b = new JSlider();
// add slider to panel
p.add(b);
f.add(p);
// set the size of frame
f.setSize(300, 300);
f.show();
}
}
Java
// java Program to create a slider with min and
// max value and major and minor ticks painted.
import javax.swing.event.*;
import java.awt.*;
import javax.swing.*;
class solve extends JFrame implements ChangeListener {
// frame
static JFrame f;
// slider
static JSlider b;
// label
static JLabel l;
// main class
public static void main(String[] args)
{
// create a new frame
f = new JFrame("frame");
// create a object
solve s = new solve();
// create label
l = new JLabel();
// create a panel
JPanel p = new JPanel();
// create a slider
b = new JSlider(0, 200, 120);
// paint the ticks and tracks
b.setPaintTrack(true);
b.setPaintTicks(true);
b.setPaintLabels(true);
// set spacing
b.setMajorTickSpacing(50);
b.setMinorTickSpacing(5);
// setChangeListener
b.addChangeListener(s);
// add slider to panel
p.add(b);
p.add(l);
f.add(p);
// set the text of label
l.setText("value of Slider is =" + b.getValue());
// set the size of frame
f.setSize(300, 300);
f.show();
}
// if JSlider value is changed
public void stateChanged(ChangeEvent e)
{
l.setText("value of Slider is =" + b.getValue());
}
}
Java
// java Program to create a vertical slider with
// min and max value and major and minor ticks
// painted and set the font of the slider.
import javax.swing.event.*;
import java.awt.*;
import javax.swing.*;
class solve extends JFrame implements ChangeListener {
// frame
static JFrame f;
// slider
static JSlider b;
// label
static JLabel l;
// main class
public static void main(String[] args)
{
// create a new frame
f = new JFrame("frame");
// create a object
solve s = new solve();
// create label
l = new JLabel();
// create a panel
JPanel p = new JPanel();
// create a slider
b = new JSlider(0, 200, 120);
// paint the ticks and tracks
b.setPaintTrack(true);
b.setPaintTicks(true);
b.setPaintLabels(true);
// set spacing
b.setMajorTickSpacing(50);
b.setMinorTickSpacing(5);
// setChangeListener
b.addChangeListener(s);
// set orientation of slider
b.setOrientation(SwingConstants.VERTICAL);
// set Font for the slider
b.setFont(new Font("Serif", Font.ITALIC, 20));
// add slider to panel
p.add(b);
p.add(l);
f.add(p);
// set the text of label
l.setText("value of Slider is =" + b.getValue());
// set the size of frame
f.setSize(300, 300);
f.show();
}
// if JSlider value is changed
public void stateChanged(ChangeEvent e)
{
l.setText("value of Slider is =" + b.getValue());
}
}
输出 :
2.程序创建一个带有最小值和最大值以及主要和次要刻度的滑块。
Java
// java Program to create a slider with min and
// max value and major and minor ticks painted.
import javax.swing.event.*;
import java.awt.*;
import javax.swing.*;
class solve extends JFrame implements ChangeListener {
// frame
static JFrame f;
// slider
static JSlider b;
// label
static JLabel l;
// main class
public static void main(String[] args)
{
// create a new frame
f = new JFrame("frame");
// create a object
solve s = new solve();
// create label
l = new JLabel();
// create a panel
JPanel p = new JPanel();
// create a slider
b = new JSlider(0, 200, 120);
// paint the ticks and tracks
b.setPaintTrack(true);
b.setPaintTicks(true);
b.setPaintLabels(true);
// set spacing
b.setMajorTickSpacing(50);
b.setMinorTickSpacing(5);
// setChangeListener
b.addChangeListener(s);
// add slider to panel
p.add(b);
p.add(l);
f.add(p);
// set the text of label
l.setText("value of Slider is =" + b.getValue());
// set the size of frame
f.setSize(300, 300);
f.show();
}
// if JSlider value is changed
public void stateChanged(ChangeEvent e)
{
l.setText("value of Slider is =" + b.getValue());
}
}
输出 :
3.程序创建一个带有最小值和最大值以及主要和次要刻度的垂直滑块,并设置滑块的字体。
Java
// java Program to create a vertical slider with
// min and max value and major and minor ticks
// painted and set the font of the slider.
import javax.swing.event.*;
import java.awt.*;
import javax.swing.*;
class solve extends JFrame implements ChangeListener {
// frame
static JFrame f;
// slider
static JSlider b;
// label
static JLabel l;
// main class
public static void main(String[] args)
{
// create a new frame
f = new JFrame("frame");
// create a object
solve s = new solve();
// create label
l = new JLabel();
// create a panel
JPanel p = new JPanel();
// create a slider
b = new JSlider(0, 200, 120);
// paint the ticks and tracks
b.setPaintTrack(true);
b.setPaintTicks(true);
b.setPaintLabels(true);
// set spacing
b.setMajorTickSpacing(50);
b.setMinorTickSpacing(5);
// setChangeListener
b.addChangeListener(s);
// set orientation of slider
b.setOrientation(SwingConstants.VERTICAL);
// set Font for the slider
b.setFont(new Font("Serif", Font.ITALIC, 20));
// add slider to panel
p.add(b);
p.add(l);
f.add(p);
// set the text of label
l.setText("value of Slider is =" + b.getValue());
// set the size of frame
f.setSize(300, 300);
f.show();
}
// if JSlider value is changed
public void stateChanged(ChangeEvent e)
{
l.setText("value of Slider is =" + b.getValue());
}
}
输出 :
注意:以上程序可能无法在在线编译器中运行,请使用离线 IDE