import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Font;

import java.awt.GridLayout;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JSlider;

import javax.swing.border.LineBorder;

import javax.swing.border.TitledBorder;

import javax.swing.event.ChangeEvent;

import javax.swing.event.ChangeListener;


public class RGB extends JFrame implements ChangeListener{

JLabel rgbLbl = new JLabel("RGB(150, 150, 150)", JLabel.CENTER);

JPanel rgbView = new JPanel();

int red=150, green=150, blue=150;

Color color = new Color(150, 150, 150);

//패널만들기

JPanel rgbInfo = new JPanel(new BorderLayout());

JPanel labelPane = new JPanel(new GridLayout(3, 1));

JLabel redLbl = new JLabel("RED");

JLabel greenLbl = new JLabel("GREEN");

JLabel blueLbl = new JLabel("BLUE");

JPanel sliderPane = new JPanel(new GridLayout(3, 1));

JSlider redSlider = new JSlider(0, 255, 150);

JSlider greenSlider = new JSlider(0, 255, 150);

JSlider blueSlider = new JSlider(0, 255, 150);

JPanel colorPane = new JPanel(new GridLayout(3, 1));

JLabel redClrLbl = new JLabel("                    ");

JLabel greenClrLbl = new JLabel("                    ");

JLabel blueClrLbl = new JLabel("                    ");

public RGB() {

add(rgbLbl, "North");

rgbView.setBackground(color); //패널컬러세팅

add(rgbView, "Center");

labelPane.add(redLbl); labelPane.add(greenLbl); labelPane.add(blueLbl);

rgbInfo.add(labelPane, "West");

redSlider.setMajorTickSpacing(50);

redSlider.setMinorTickSpacing(5);

redSlider.setPaintTicks(true);

redSlider.setPaintLabels(true);

greenSlider.setMajorTickSpacing(50);

greenSlider.setMinorTickSpacing(5);

greenSlider.setPaintTicks(true);

greenSlider.setPaintLabels(true);

blueSlider.setMajorTickSpacing(50);

blueSlider.setMinorTickSpacing(5);

blueSlider.setPaintTicks(true);

blueSlider.setPaintLabels(true);

sliderPane.add(redSlider); sliderPane.add(greenSlider); sliderPane.add(blueSlider);

rgbInfo.add(sliderPane, "Center");

LineBorder lb = new LineBorder(Color.CYAN, 3);

TitledBorder tb = new TitledBorder(lb, "Color Split", TitledBorder.CENTER, 

TitledBorder.CENTER, new Font("Serif", Font.BOLD, 15), Color.BLACK);

rgbInfo.setBorder(tb);

redClrLbl.setOpaque(true);

redClrLbl.setBackground(new Color(150, 0, 0));

greenClrLbl.setOpaque(true);

greenClrLbl.setBackground(new Color(0, 150, 0));

blueClrLbl.setOpaque(true);

blueClrLbl.setBackground(new Color(0, 0, 150));

colorPane.add(redClrLbl); colorPane.add(greenClrLbl); colorPane.add(blueClrLbl);

rgbInfo.add(colorPane, "East");

add(rgbInfo, "South");

setSize(500, 350);

setVisible(true);

//이벤트 등록

redSlider.addChangeListener(this);

greenSlider.addChangeListener(this);

blueSlider.addChangeListener(this);

}

public void stateChanged(ChangeEvent ce){

Object obj = ce.getSource();

if(obj == redSlider){

red = redSlider.getValue();

redClrLbl.setBackground(new Color(red, 0, 0));

}else if(obj == greenSlider){

green = greenSlider.getValue();

greenClrLbl.setBackground(new Color(0, green, 0));

}else if(obj == blueSlider){

blue = blueSlider.getValue();

blueClrLbl.setBackground(new Color(0, 0, blue));

}

rgbView.setBackground(new Color(red, green, blue));

rgbLbl.setText("RGB("+red+", "+green+", "+blue+")");

}

public static void main(String[] args) {

new RGB();


}


}



'응용 SoftWare > JAVA' 카테고리의 다른 글

Properties  (0) 2016.12.14
ArrayList  (0) 2016.12.14
JBorder  (0) 2016.12.12
JSlider  (0) 2016.12.12
메모장 (글자 굵기, 기울기, 초기화, 색, 종료창)  (0) 2016.12.12
Posted by Hyun CHO
,