Lớp JSpinner trong Java Swing



Lớp JSpinner là một thành phần cho phép người dùng lựa chọn một số hoặc một giá trị đối tượng từ một dãy đã qua sắp xếp bởi sử dụng một trường đầu vào. Cú pháp khai báo của lớp javax.swing.JSpinner là:

public class JSpinner
   extends JComponent
      implements 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ủa lớp JSpinner trong Java Swing

JSpinner(): Xây dựng một spinner với một Integer SpinnerNumberModel với giá trị khởi tạo 0 và không có giới hạn lớn nhất và nhỏ nhất.

JSpinner(SpinnerModel model): Xây dựng một spinner đầy đủ với một cặp nút next/previous và một editor cho SpinnerModel.

Các phương thức của lớp JSpinner trong Java Swing

Quảng cáo
STT Phương thức & Miêu tả
1 void removeChangeListener(ChangeListener listener)

Xóa một ChangeListener từ spinner này

2 void setEditor(JComponent editor)

Thay đổi JComponent mà hiển thị giá trị hiện tại của SpinnerModel

3 void setModel(SpinnerModel model)

Thay đổi model mà biểu diễn giá trị của spinner này

4 void setUI(SpinnerUI ui)

Thiết lập đối tượng L&F mà truyền spinner này

5 void setValue(Object value)

Thay đổi giá trị hiện tại của model, đặt trưng của giá trị này là được hiển thị bởi Editor

6 void updateUI()

Phục hồi thuộc tính UI về giá trị L&F hiện tại

7 void addChangeListener(ChangeListener listener)

Thêm một listener tới list mà được thông báo mỗi khi xuất hiện một thay đổi tới model

8 void commitEdit()

Ký thác giá trị đã sửa đổi hiện tại tới SpinnerModel

9 protected JComponent createEditor(SpinnerModel model)

Phương thức này được gọi bởi các constructor để tạo JComponent mà hiển thị giá trị hiện tại của dãy

10 protected void fireStateChanged()

Gửi một ChangeEvent, có source là JSpinner này, tới mỗi ChangeListener

11 AccessibleContext getAccessibleContext()

Lấy AccessibleContext cho JSpinner

12 ChangeListener[] getChangeListeners()

Trả về một mảng tất cả ChangeListeners được thêm tới JSpinner này với phương thức addChangeListener()

13 JComponent getEditor()

Trả về thành phần mà hiển thị và thay đổi giá trị của model

Quảng cáo
Quảng cáo

Chương trình ví dụ lớp JSpinner trong Java Swing

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.showSpinnerDemo();
   }

   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 showSpinnerDemo(){
      headerLabel.setText("Control in action: JSpinner"); 
      SpinnerModel spinnerModel =
         new SpinnerNumberModel(10, //initial value
            0, //min
            100, //max
            1);//step
      JSpinner spinner = new JSpinner(spinnerModel);
      spinner.addChangeListener(new ChangeListener() {
         public void stateChanged(ChangeEvent e) {
            statusLabel.setText("Value : " 
            + ((JSpinner)e.getSource()).getValue());
         }
      });
      controlPanel.add(spinner);
      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