Lớp JSlider trong Java Swing



Lớp JSlider đượ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.

Quảng cáo

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

import javax.swing.*;  
  
public class SliderExample1 extends JFrame{  
  
public SliderExample1() {  
JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 50, 25);  
JPanel panel=new JPanel();  
panel.add(slider);  
  
add(panel);  
}  
  
public static void main(String s[]) {  
SliderExample1 frame=new SliderExample1();  
frame.pack();  
frame.setVisible(true);  
}  
}  
Quảng cáo

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

import javax.swing.*;  
  
public class SliderExample extends JFrame{  
  
public SliderExample() {  
  
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);  
}  
  
public static void main(String s[]) {  
SliderExample frame=new SliderExample();  
frame.pack();  
frame.setVisible(true);  
  
}  
}  

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

package com.vietjack.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("Vi du Java Swing");
      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);     
   } 
}

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập doanh nghiệp với Java. Khóa học có giá chỉ 400K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp chị Thu, trợ lý anh Tuyền để hỗ trợ thanh toán qua mã QR ngân hàng Việt Nam, fb: https://www.facebook.com/Thule.59

Anh Tuyền, tác giả khóa học, là cựu sinh viên chương trình đào tạo kĩ sư tài năng của đại học Bách Khoa Hà Nội với hơn 5 năm kinh nghiệm đi làm thực tế doanh nghiệp và cũng là Founder website vietjack.com, web giáo dục phổ biến nhất Việt Nam hiện tại (năm 2024). Java cũng là ngôn ngữ lập trình dễ đi xin việc nhất hiện tại, với mức lương cao, hãy nâng cao kiến thức IT của bản thân mình vì một Việt Nam giàu mạnh.

Loạt bài hướng dẫn của chúng tôi dựa một phần trên nguồn tài liệu của: Tutorialspoint.com


swing_control_trong_java_swing.jsp


Tài liệu giáo viên