Java Swing - Lớp JSlider

Lớp JSlider trong Java Swing

Lớp JSlider trong Java Swing được sử dụng để tạo con trượt slider. Bởi sử dụng JSlider, một người dùng có thể lựa chọn một giá trị từ một dãy cụ thể. Cú pháp khai báo của lớp JSlider như sau:

public class JSlider
   extends JComponent
      implements SwingConstants, Accessible

Lớp này kế thừa các phương thức từ các lớp sau:

  • javax.swing.JComponent

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object


Các constructor được sử dụng phổ biến của lớp JSlider

JSlider(): tạo một slider với giá trị khởi tạo là 50 và dãy giá trị là từ 0 tới 100.

JSlider(int orientation): tạo một slider với orientation đã cho được thiết lập bởi hoặc JSlider.HORIZONTAL hoặc JSlider.VERTICAL với dãy từ 0 tới 100 và giá trị khởi tạo là 50.

JSlider(int min, int max): tạo một thanh slider ngang bởi sử dụng giá trị min và max đã cho.

JSlider(int min, int max, int value): tạo một thanh slider ngang bởi sử dụng giá trị min, max và value đã cho.

JSlider(int orientation, int min, int max, int value): tạo một slider bởi sử dụng orientation, min, max và value đã cho.


Các phương thức được sử dụng phổ biến của lớp JSlider

public void setMinorTickSpacing(int n): được sử dụng để thiết lập khoảng cách tick nhỏ nhất cho slider.

public void setMajorTickSpacing(int n): được sử dụng để thiết lập khoảng cách tick lớn nhất cho slider.

public void setPaintTicks(boolean b): được sử dụng để xác định xem tick mark có được sơn màu hay không.

public void setPaintLabels(boolean b): được sử dụng để xác định xem label có được sơn màu hay không.

public void setPaintTracks(boolean b): được sử dụng để xác định xem track có được sơn màu hay không.


Chương trình ví dụ đầu tiên về lớp JSlider

package vn.viettuts.swing;
 
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.WindowConstants;
 
public class JSliderExam1 extends JFrame {
 
    public JSliderExam1() {
        JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 50, 25);
        JPanel panel = new JPanel();
        panel.add(slider);
 
        add(panel);
        setTitle("JSlider trong Java Swing");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
 
    public static void main(String s[]) {
        JSliderExam1 frame = new JSliderExam1();
        frame.pack();
        frame.setVisible(true);
    }
}

Chạy chương trình trên cho kết quả như sau:

Lớp JSlider trong Java Swing


Lớp JSlider trong Java Swing


 Lớp JProgressBar trong Java Swing

Lớp JSpinner trong Java Swing 


Lớp JSlider trong Java Swing được sử dụng để tạo con trượt slider. Bởi sử dụng JSlider, một người dùng có thể lựa chọn một giá trị từ một dãy cụ thể. Cú pháp khai báo của lớp JSlider như sau:

?

1

2

3

public class JSlider

   extends JComponent

      implements SwingConstants, Accessible


Nội dung chính

Lớp này kế thừa các phương thức từ các lớp sau:

  • javax.swing.JComponent

  • java.awt.Container

  • java.awt.Component

  • java.lang.Object


 

Các constructor được sử dụng phổ biến của lớp JSlider

JSlider(): tạo một slider với giá trị khởi tạo là 50 và dãy giá trị là từ 0 tới 100.

JSlider(int orientation): tạo một slider với orientation đã cho được thiết lập bởi hoặc JSlider.HORIZONTAL hoặc JSlider.VERTICAL với dãy từ 0 tới 100 và giá trị khởi tạo là 50.

JSlider(int min, int max): tạo một thanh slider ngang bởi sử dụng giá trị min và max đã cho.

JSlider(int min, int max, int value): tạo một thanh slider ngang bởi sử dụng giá trị min, max và value đã cho.

JSlider(int orientation, int min, int max, int value): tạo một slider bởi sử dụng orientation, min, max và value đã cho.


Các phương thức được sử dụng phổ biến của lớp JSlider

public void setMinorTickSpacing(int n): được sử dụng để thiết lập khoảng cách tick nhỏ nhất cho slider.

public void setMajorTickSpacing(int n): được sử dụng để thiết lập khoảng cách tick lớn nhất cho slider.

public void setPaintTicks(boolean b): được sử dụng để xác định xem tick mark có được sơn màu hay không.

public void setPaintLabels(boolean b): được sử dụng để xác định xem label có được sơn màu hay không.

public void setPaintTracks(boolean b): được sử dụng để xác định xem track có được sơn màu hay không.


 

Chương trình ví dụ đầu tiên về lớp JSlider

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

package vn.viettuts.swing;

 

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JSlider;

import javax.swing.WindowConstants;

 

public class JSliderExam1 extends JFrame {

 

    public JSliderExam1() {

        JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 50, 25);

        JPanel panel = new JPanel();

        panel.add(slider);

 

        add(panel);

        setTitle("JSlider trong Java Swing");

        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    }

 

    public static void main(String s[]) {

        JSliderExam1 frame = new JSliderExam1();

        frame.pack();

        frame.setVisible(true);

    }

}

Chạy chương trình trên cho kết quả như sau:

Lớp JSlider trong Java Swing


Ví dụ khác về lớp JSlider mà tô màu các tick

package vn.viettuts.swing;
 
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.WindowConstants;
 
public class JSliderExam2 extends JFrame {
 
    public JSliderExam2() {
 
        JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 50, 25);
        slider.setMinorTickSpacing(2);
        slider.setMajorTickSpacing(10);
 
        slider.setPaintTicks(true);
        slider.setPaintLabels(true);
 
        JPanel panel = new JPanel();
        panel.add(slider);
        add(panel);
        setTitle("JSlider trong Java Swing");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
 
    public static void main(String s[]) {
        JSliderExam2 frame = new JSliderExam2();
        frame.pack();
        frame.setVisible(true);
 
    }
}

hạy chương trình trên cho kết quả như sau:

Lớp JSlider trong Java Swing


Chương trình ví dụ khác về lớp JSlider

package vn.viettuts.swing;
 
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
 
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.WindowConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
 
public class JSliderExam3 {
 
    private JFrame mainFrame;
    private JLabel headerLabel;
    private JLabel statusLabel;
    private JPanel controlPanel;
 
    public JSliderExam3() {
        prepareGUI();
    }
 
    public static void main(String[] args) {
        JSliderExam3 demo = new JSliderExam3();
        demo.showSliderDemo();
    }
 
    private void prepareGUI() {
        mainFrame = new JFrame("Vi du JSlider trong Java Swing");
        mainFrame.setSize(400, 200);
        mainFrame.setLayout(new GridLayout(3, 1));
        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);
        mainFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
 
    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);
    }
}

Chạy chương trình trên cho kết quả như sau:

Lớp JSlider trong Java Swing