JAVA 공부

자바 윈도우로 색상바 조절하기

사탕맛사과 2023. 5. 10. 03:15
package com.simple.gui;

import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JSlider;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class SliderExample extends JFrame {
	private JLabel colorLabel;
    private JSlider[] sliders = new JSlider[3];
   
    public SliderExample() {
        super("JSlider 사용 예제");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container contentPane = getContentPane();	// 프레임의 안쪽 영역
        contentPane.setLayout(new FlowLayout());
       
        colorLabel = new JLabel(" Color Label ");
       
        for(int i=0; i<sliders.length; i++) {
            sliders[i] = new JSlider(JSlider.HORIZONTAL, 0, 255, 128);	// 수평, 최소, 최대, 초기값
            sliders[i].setPaintLabels(true);
            sliders[i].setPaintTicks(true);
            sliders[i].setPaintTrack(true);
            sliders[i].setMajorTickSpacing(50);		// 주눈금
            sliders[i].setMinorTickSpacing(10);		// 보조눈금
            sliders[i].addChangeListener(new ColorChangeListener());
            contentPane.add(sliders[i]);
        }
       
        sliders[0].setForeground(Color.RED);
        sliders[1].setForeground(Color.GREEN);
        sliders[2].setForeground(Color.BLUE);
       
        // 값 받아옴
        int red = sliders[0].getValue();
        int green = sliders[1].getValue();
        int blue = sliders[2].getValue();
       
        // 색을 냄
        colorLabel.setOpaque(true);
        colorLabel.setBackground(new Color(red, green, blue));
        contentPane.add(colorLabel);
       
        setSize(300, 300);
        setVisible(true);
    }
   
    // ColorChangeListener: 내부클래스,    ChangeListener: 인터페이스
    class ColorChangeListener implements ChangeListener {
        public void stateChanged(ChangeEvent e) {
            int r = sliders[0].getValue();
            int g = sliders[1].getValue();
            int b = sliders[2].getValue();
            colorLabel.setBackground(new Color(r, g, b));
        }
    }
   
    public static void main(String[] args) {
        new SliderExample();
    }
}

'JAVA 공부' 카테고리의 다른 글

Java 윈도우로 덧셈 계산기  (0) 2023.05.10
JAVA 참고 사이트  (0) 2023.05.10
사칙연산  (0) 2023.05.10
극장좌석 예약하기  (0) 2023.05.10
자바 윈도우 프로그래밍  (0) 2023.05.10