자바 스윙 JSlider 슬라이더 구현 예제

1.개술
공식 자바 DocsApi:javax.swing.JSlider
JSlider,슬라이더.
경계 구간 에서 슬라이더 를 이동 하여 값 을 선택 하 는 구성 요 소 를 도형 으로 사용 합 니 다.
슬라이더 는 주 눈금 표시 와 주 눈금 사이 의 차 눈금 표 시 를 표시 할 수 있 습 니 다.눈금 표시 사이 의 값 의 개 수 는 setMajorTickspacing(int)과 setMinorTickspacing(int)에서 제어 합 니 다.눈금 표 시 는 setPaintTicks(boolean)가 제어 합 니 다.
슬라이더 도 고정 시간 간격(또는 임의의 위치)에서 슬라이더 눈금 을 따라 텍스트 탭 을 인쇄 할 수 있 습 니 다.탭 의 그리 기 는 setLabelTable(Dictionary)과 setPaintLabels(boolean)가 제어 합 니 다.
PS:슬라이더 가 초점 을 맞 추 면 키보드 의 상하 좌우 버튼 을 눌 러 도 슬라이더 를 미 끄 러 뜨 릴 수 있 습 니 다.
JSlider 상용 구조 방법:

/**
 *     :
 *   orientation:      ,SwingConstants.VERTICAL   SwingConstants.HORIZONTAL,       
 *   min:       
 *   max:       
 *   value:       (                     )
 */
JSlider()

JSlider(int orientation)  //       、   、         0, 100, 50

JSlider(int min, int max)  //        min   max        

JSlider(int min, int max, int value)

JSlider(int orientation, int min, int max, int value)

JSlider 상용 방법:

//          、   、   
void setMinimum(int min)
void setMaximum(int max)
void setValue(int n)

//         
int getValue()

//           
void setMajorTickSpacing(int n)
//                  
void setMinorTickSpacing(int n)

//           
void setPaintTicks(boolean b)
//            (     )
void setPaintLabels(boolean b)
//          
void setPaintTrack(boolean b)

//        ,SwingConstants.VERTICAL   SwingConstants.HORIZONTAL
void setOrientation(int orientation)

//          (       )
void setInverted(boolean b)

//            。    true,                ,        。
void setSnapToTicks(boolean b)

//                                  
void setLabelTable(Dictionary<Integer, JComponent> labels)

//            
void addChangeListener(ChangeListener l)
2.코드 인 스 턴 스:기본 눈금 값

package com.xiets.swing;

import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class Main {

  public static void main(String[] args) {
    JFrame jf = new JFrame("    ");
    jf.setSize(250, 250);
    jf.setLocationRelativeTo(null);
    jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    JPanel panel = new JPanel();

    //       ,   、   、        0、20、10
    final JSlider slider = new JSlider(0, 20, 10);

    //        
    slider.setMajorTickSpacing(5);

    //        
    slider.setMinorTickSpacing(1);

    //           
    slider.setPaintTicks(true);
    slider.setPaintLabels(true);

    //          
    slider.addChangeListener(new ChangeListener() {
      @Override
      public void stateChanged(ChangeEvent e) {
        System.out.println("   : " + slider.getValue());
      }
    });

    //          
    panel.add(slider);

    jf.setContentPane(panel);
    jf.setVisible(true);

  }
}
결과 전시:

3.코드 인 스 턴 스:사용자 정의 탭 눈금 값

package com.xiets.swing;

import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.util.Hashtable;

public class Main {

  public static void main(String[] args) {
    JFrame jf = new JFrame("    ");
    jf.setSize(250, 250);
    jf.setLocationRelativeTo(null);
    jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    JPanel panel = new JPanel();

    //       ,   、   、        0、20、10
    final JSlider slider = new JSlider(0, 20, 10);

    //        
    slider.setMajorTickSpacing(5);

    //        
    slider.setMinorTickSpacing(1);

    //           
    slider.setPaintTicks(true);
    slider.setPaintLabels(true);

    /*
     *            
     */
    slider.setOrientation(SwingConstants.VERTICAL);

    /*
     *               
     */
    Hashtable<Integer, JComponent> hashtable = new Hashtable<Integer, JComponent>();
    hashtable.put(0, new JLabel("Start"));   // 0     ,   "Start"
    hashtable.put(10, new JLabel("Middle"));  // 10     ,   "Middle"
    hashtable.put(20, new JLabel("End"));    // 20     ,   "End"

    /*
     *                     (             )
     */
    slider.setLabelTable(hashtable);

    //          
    slider.addChangeListener(new ChangeListener() {
      @Override
      public void stateChanged(ChangeEvent e) {
        System.out.println("   : " + slider.getValue());
      }
    });

    //          
    panel.add(slider);

    jf.setContentPane(panel);
    jf.setVisible(true);

  }

}
결과 전시:

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기