JSlider 슬라이더 컴포넌트
JSlider 컴포넌트의 생성
JSlider( ) | 디폴트 슬라이더 생성 |
JSlider(int orientation) | orientation 방향의 슬라이더 생성 |
JSlider(int min, int max, int val) | 최소, 최대 초깃값을 가진 슬라이더 생성 |
JSlider(int orientation, int min, int max, int val) | 방향, 최소, 최대, 초깃값을 가진 슬라이더 생성 |
orientation은 JSlider.HORIZONTA과 JSlider.VERTICAL 중 하나이며 각각 수평 슬라이더와 수직 슬라이더를 의미 한다.
슬라이더의 모양 제어
void setOrientation(int orientation) | orientation의 값에 따라 슬라이더 방향을 수직, 수평모양으로 변경 |
void setMinimum(int min) | 슬라이더 minimum 값을 min 값으로 설정 |
void setMaximum(int max) | 슬라이더 maximum 값을 max 값으로 설정 |
void setPaintLabels(boolean b) | b가 true이면 슬라이더의 label을 보이게 하고 b가 false이면 감춘다. |
void setPaintTicks(boolean b) | b가 true이면 슬라이더의 눈금을 보이게 하고 b가 false이면 감춘다. |
void setPaintTrack(boolean b) | b가 true이면 슬라이더의 트랙을 보이게 하고 b가 false이면 감춘다. |
void setMinorTickSpacing(int space) | 슬라이더의 작은 눈금 간격을 space로 설정한다. |
void setMajorTickSpacing(int space) | 슬라이더의 큰 눈금 간격을 space로 설정한다. |
JSlider로 슬라이더 컴포넌트를 만들고 모양을 제어하는 예
import javax.swing.*; import java.awt.*;
public class SliderEx extends JFrame { public SliderEx() { setTitle("슬라이더 만들기 예제"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c = getContentPane(); c.setLayout(new FlowLayout());
JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 200, 100); slider.setPaintLabels(true); slider.setPaintTicks(true); slider.setPaintTrack(true); slider.setMajorTickSpacing(50); slider.setMinorTickSpacing(10); c.add(slider);
setSize(300,100); setVisible(true); }
public static void main(String [] args) { new SliderEx(); } } |
JSlider와 Change 이벤트
Change 이벤트 정보를 가진 이벤트 객체는 ChangeEvent이며, javax.swing, event 패키지에 포함되어 있다.
JSlider와 Change 이벤트를 활용한 색깔 다루기예
import javax.swing.*; import java.awt.*; import javax.swing.event.*;
public class SliderChangeEx extends JFrame { private JLabel colorLabel; private JSlider [] sl = new JSlider [3]; // 3개의 슬라이더 배열 생성
public SliderChangeEx() { setTitle("슬라이더와 ChangeEvent 예제"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container c = getContentPane(); c.setLayout(new FlowLayout());
colorLabel = new JLabel(" RGB Color Change ");
// 슬라이더를 3개 생성하고 모양을 제어한다. for(int i=0; i<sl.length; i++) { // 0~255 사이의 값을 선택할 수 있는 슬라이더 생성. 초깃값은 128 sl[i] = new JSlider(JSlider.HORIZONTAL, 0, 255, 128); sl[i].setPaintLabels(true); sl[i].setPaintTicks(true); sl[i].setPaintTrack(true); sl[i].setMajorTickSpacing(50); sl[i].setMinorTickSpacing(10);
// 슬라이더에 Change 리스너 등록 sl[i].addChangeListener(new MyChangeListener()); c.add(sl[i]); // 슬라이더를 컨텐트팬에 삽입 }
sl[0].setForeground(Color.RED); // s[0] 슬라이더는 RED 값 선택 sl[1].setForeground(Color.GREEN); // s[1] 슬라이더는 GREEN 값 선택 sl[2].setForeground(Color.BLUE); // s[0] 슬라이더는 BLUE 값 선택
// 현재 3개의 슬라이더로부터 값을 얻어 초기 colorLabel의 배경색 설정 int r = sl[0].getValue(); // 첫 번째 슬라이더로부터 R 성분 값 얻기 int g = sl[1].getValue(); // 두 번째 슬라이더로부터 G 성분 값 얻기 int b = sl[2].getValue(); // 세 번째 슬라이더로부터 B 성분 값 얻기 colorLabel.setOpaque(true); // 배경색이 출력되도록 불투명성 설정 colorLabel.setBackground(new Color(r,g,b)); // r,g,b 값으로 새로운 색 설정
c.add(colorLabel); setSize(300,230); setVisible(true); }
// Change 리스너 구현 class MyChangeListener implements ChangeListener { public void stateChanged(ChangeEvent e) { // 슬라이더의 값이 변경할 때 호출 // 3개의 슬라이더로부터 값을 얻어 colorLabel의 배경색 변경 int r = sl[0].getValue(); // R 성분 값 얻기 int g = sl[1].getValue(); // G 성분 값 얻기 int b = sl[2].getValue(); // B 성분 값 얻기 colorLabel.setBackground(new Color(r,g,b)); // r,g,b 값으로 새로운 색 설정 } } public static void main(String [] args) { new SliderChangeEx(); } } |
'프로그램언어 > 자바' 카테고리의 다른 글
스윙 컴포넌트 그리기2 (0) | 2020.11.05 |
---|---|
스윙 컴포넌트 그리기1 (0) | 2020.11.05 |
스윙 컴포넌트의 공통 메소드4 (0) | 2020.11.05 |
스윙 컴포넌트의 공통 메소드3 (0) | 2020.11.04 |
스윙 컴포넌트의 공통 메소드2 (0) | 2020.11.04 |