JSlider

 




슬라이더는 사용자가 특정 범위 안에서 하나의 값을 선택할 수 있는 컴포넌트이다.

 

미디어 옆에 볼륨을 조정할 때 자주 사용된다.

 

JSlider

 생성자

  JSlider()

 0~100사이의 수평 슬라이더를 생성한다.

  JSlider(int min, int max)

 지정된 최소값과 최대값을 가지는 슬라이더를 생성한다.

  Jslider(int min, int max, int value)

 위와 같으면 value는 슬라이더의 초기값이다.

 메소드

  void setMajorTickSpacing(int space)

 큰 눈금 간격을 설정한다.

  void setMinortickSpacing(int space) 

 작은 눈금 간격을 설정한다.

  void setPaintTicks(booelan visible) 

 눈금을 표시할 지를 설정한다.

  void setPaintLabels(boolean visible)

 값을 레이블로 표시할지 설정한다.

 이벤트 처리

  addChangeListener(ChangeListener cl)

 슬라이더의 값이 변경되었을 경우 ChangeEvent가 발생한다체인지 이벤트는 ChangListener 인터페이스를 구현하여 처리한다.




- JSlider 예제


public class SliderTest extends JFrame implements ChangeListener { //FIELDS public static final int INIT_VAL = 15; private JButton button = new JButton(); private JPanel panel = new JPanel(); private JLabel label = new JLabel("슬라이더 움직이기", JLabel.CENTER); private JSlider slider; //CONSTRUCTOR SliderTest() { setTitle("슬라이더 예제"); setSize(300, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); label.setAlignmentX(Component.CENTER_ALIGNMENT); panel.add(label); slider = new JSlider(0, 20, INIT_VAL); slider.setMagorTickSpacing(5); //큰 눈금 간격 5로 설정 slider.setMinorTickSpacing(1); //작은 눈금 간격 1로 설정 slider.setPaintTicks(true); //눈금을 표시한다. slider.setPaintLabels(true); //값을 레이블로 표시한다. slider.addChangeListener(this); panel.add(slider); button.setText("멍멍"); button.setSize(INIT_VAL, INIT_VAL); panel.add(button); add(panel); setVisible(true); } //METHODS @Override public void stateChanged(Change Event e) { JSlider selectedSlide = (JSlider) e.getSource(); if(!selectedSlide.getValueIsAdjusting()) { int val = (int) source.getValue(); button.setSize(val*5, val*5); //슬라이더 값에 따라 버튼 크기 조절 } } public static void main(String[] args) { new SliderTest(); } }






'Programming Language > JAVA' 카테고리의 다른 글

30. JColorChooser, JFileChooser - 색상 선택기, 파일 선택기  (0) 2017.06.29
29. JTree - 트리  (0) 2017.06.29
27. JSpinner - 스피너  (0) 2017.06.29
26. JComboBox - 콤보박스  (0) 2017.06.29
25. JList - 리스트  (0) 2017.06.25

+ Recent posts