▶ 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 |