Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java Swing JSlider에서 슬라이더 범위(Extent) 설정하는 방법

Swing의 JSlider에서 범위(extent)를 설정하려면 setExtent() 메서드를 사용합니다. 이 메서드는 슬라이더 노브(knob)가 덮는 범위의 크기를 지정하며, 노브가 이동할 수 있는 최대 위치를 제한하는 역할을 합니다.

setExtent() 메서드 기본 사용법

아래 코드처럼 setExtent() 메서드에 원하는 값을 전달하여 범위를 설정할 수 있습니다.

JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 70);
slider.setMinorTickSpacing(5);
slider.setMajorTickSpacing(20);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
slider.setExtent(20);

전체 예제 코드

다음은 JSlider에서 범위를 설정하는 완전한 예제입니다.

package my;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.WindowConstants;

public class SwingDemo {
   public static void main(String[] args) {
      JFrame frame = new JFrame("Frame with Slider");

      // 가로 방향 슬라이더 생성 (최소값 0, 최대값 100, 초기값 70)
      JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 100, 70);
      slider.setMinorTickSpacing(5);
      slider.setMajorTickSpacing(20);
      slider.setPaintTicks(true);
      slider.setPaintLabels(true);

      // 범위(extent) 설정
      slider.setExtent(20);

      JPanel panel = new JPanel();
      panel.add(slider);
      frame.add(panel);
      frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
      frame.setSize(500, 300);
      frame.setVisible(true);
   }
}

실행 결과

프로그램을 실행하면 다음과 같이 JSlider가 표시됩니다.

Java Swing JSlider에서 슬라이더 범위(Extent) 설정하는 방법

범위 설정의 효과

위 예제에서 setExtent(20)으로 범위를 설정했기 때문에, 슬라이더의 초기값이 70이고 최대값이 100이라도 노브를 끝까지 밀 수 없습니다. 즉, 노브는 최대 80까지만 이동 가능하며, 그 이상 확장할 수 없습니다.

Java Swing JSlider에서 슬라이더 범위(Extent) 설정하는 방법

이처럼 setExtent() 메서드를 활용하면 슬라이더 값의 상한을 유동적으로 제어할 수 있어, 특정 구간만 선택 가능하게 하는 UI를 손쉽게 구현할 수 있습니다.