mojo's Blog

JSlider, 슬라이더 컴포넌트 본문

Java

JSlider, 슬라이더 컴포넌트

_mojo_ 2021. 7. 29. 10:52

JSlider 연습 코드

import javax.swing.*; // JFrame
import java.awt.*; // Container
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.Vector;
import java.awt.*;

public class SliderEx extends JFrame{
	
	SliderEx(){
		setTitle("11장 연습");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Container c = getContentPane();
		c.setLayout(new FlowLayout());
	
		JSlider slider=new JSlider(JSlider.HORIZONTAL, 0, 200, 100); // 0~200까지며 현재 선택된것은 100
		
		// JSlider의 메소드를 호출하여 슬라디어 모양을 제어함
		slider.setPaintLabels(true);
		slider.setPaintTicks(true); 
		slider.setPaintTrack(true);
		slider.setMajorTickSpacing(50); // 수치상으로 50씩 간격
		slider.setMinorTickSpacing(10); // 눈금으로 10씩 간격
		//
		
		c.add(slider);
		
		setSize(300, 300); // 프레임 크기 300x300
		setVisible(true); // 프레임 출력
		
		c.setFocusable(true);
		c.requestFocus();
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new SliderEx();
	}

}

 

JSlider와 Change 이벤트를 활용한 색깔 다루기 

import javax.swing.*; // JFrame
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import java.awt.*; // Container
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.Vector;
import java.awt.*;

public class SliderEx extends JFrame{
	
	private JLabel colorLabel;
	private JSlider []sl=new JSlider[3];
	
	class MyChangeListener implements ChangeListener{

		@Override
		public void stateChanged(ChangeEvent e) {
			// TODO Auto-generated method stub
			int r=sl[0].getValue();
			int g=sl[1].getValue();
			int b=sl[2].getValue();
			colorLabel.setBackground(new Color(r,b,g));
		}

	}
	
	SliderEx(){
		setTitle("11장 연습");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Container c = getContentPane();
		c.setLayout(new FlowLayout());
	
		colorLabel=new JLabel("    SLIDER EXAMPLE    ");
		
		for(int i=0;i<sl.length;i++) {
			sl[i] = new JSlider(JSlider.HORIZONTAL,0,255,128);
			// JSlider의 메소드를 호출하여 슬라디어 모양을 제어함
			sl[i].setPaintLabels(true);
			sl[i].setPaintTicks(true); 
			sl[i].setPaintTrack(true);
			sl[i].setMajorTickSpacing(50); // 수치상으로 50씩 간격
			sl[i].setMinorTickSpacing(10); // 눈금으로 10씩 간격
			//
			
			sl[i].addChangeListener(new MyChangeListener());
			c.add(sl[i]);
		}
		
		sl[0].setForeground(Color.RED);
		sl[1].setForeground(Color.GREEN);
		sl[2].setForeground(Color.BLUE);
		
		int r=sl[0].getValue();
		int g=sl[1].getValue();
		int b=sl[2].getValue();
		colorLabel.setOpaque(true);
		colorLabel.setBackground(new Color(r,g,b));
		
		c.add(colorLabel);
		
		setSize(300, 300); // 프레임 크기 300x300
		setVisible(true); // 프레임 출력
		
		c.setFocusable(true);
		c.requestFocus();
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		new SliderEx();
	}

}
Comments