JColorChooser




사용자가 색상 팔레트에서 하나의 색상을 선택할 수 있는 색상 선택기” 컴포넌트이다.

 

색상 선택기는 탭이 붙어있는 패널과 미리보기 패널로 구성된다.

 

탭이 붙어있는 패널은 각기 다른 색상 모델을 지원한다.

 

미리보기 패널은 현재 선택된 색상을 다양한 방식으로 표시한다.


JColorChooser

 생성자

설명

 JColorChooser()

 초기 색상으로 Color.white를 표시하는 색상 선택기를 생성한다.

 JColorChooser(Color color)

 매개변수로 지정된 색상을 초기 색상으로 가지는 색상 선택기를 생성한다.





- JColorChooser 예제

 

public class ColorChooserTest extends JFrame implements ChangeListener {

	//FIELDS
	//색상 선택기를 필요로하는 다른 패키지(상속된 클래스만)에서도 사용할 수 있도록 접근 제한자를 protected로 설정
	protected JColorChooser colorChooser = new ColorChooser();
	private JPanel panel = new JPanel();

	//CONSTRUCTOR
	ColorChooserTest() {
		setTitle("색상 선택기 예제");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		pack(); //컴포넌트의 크기에 자동으로 맞춰지게 해주는 프레임용 메소드

		//주의! 색상 선택기의 선택 모델에 리스너를 추가하여야 한다.
		colorChooser.getSelectionModel().addChangeListener(this);
		colorChooser.setBorder(BorderFactory.createTitleBorder("색상 선택"));

		panel.add(colorChooser);
		add(panel);

		setVisible(true);
	}

	//METHODS
	@Override
	public void stateChanged(ChangeEvent e) {
		Color selectedColor = colorChooser.getColor(); //색상 선택기의 현재 컬러값 반환
	}

	public static void main(String[] args) {
		new ColorChooserTest();
	}

}

 

 

 

 JFileChooser

 



파일 시스템을 탐색하여 파일이나 디렉토리를 선택하는 파일 선택기” 컴포넌트이다.

 

단순히 파일을 선택하기 위한 것으로프로그램 내에서 읽거나 쓰거나 수정하는 등의 동작들은 UI를 구현해야한다.

 

파일 선택기를 생성할 때 final 키워드를 붙이는 것이 일반적이다파일 선택기를 바꿔가며 사용하지는 않기 때문이다.


final JFileChooser fileChooser = new JFileChooser();



파일 선택기는 다음에 배울 대화상자이므로 파일을 선택하기 위한 창으로 다이얼로그를 사용한다.

 

파일 선택기 열기 주로 파일 열기 동작(이벤트)을 처리하기 위한 액션 리스너에 등장한다.


int showOpenDialog(Component component)

  • 반환값은 사용자의 파일 선택여부를 나타내는 정수값이다.

  • 일반적으로 APPROVE_OPTION 인지만 검사하면 된다.

  • 매개변수로 대화상자의 부모 컴포넌트를 전달한다.

  • 부모 컴포넌트는 대화상자의 위치에 영향을 준다디폴트 값은 사용자의 홈 디렉토리에 있는 모든 파일을 표시하는 것이다.

 

선택된 파일 얻기 선택된 파일을 File 객체로 반환한다.


File getSelectedFile();


초기 디렉토리 설정 : 매개변수로 디렉토리 경로를 준다. 경로의 종류는 절대경로와 상대경로가 있다.


void setCurrentDirectory("~");

 

파일 저장하기 반환값과 매개변수는 showOpenDialog 메소드와 유사하다.


int showSaveDialog(Component component)





- JFileChooser 예제


public class FileChooserTest extends JFrame implements ActionListener {

	//FIELDS
	JButton openBtn = new JButton("File Open!");
	JButton saveBtn = new JButton("File Save!");
	JFileChooser fileChooser = new JFileChooser();
	JPanel fcPanel = new JPanel();
	JLabel pathLabel = new JLabel("선택한 파일의 경로 보여주기");

	//CONSTRUCTOR
	FileChooserTest() {
		setTitle("파일 선택기 예제");
		setSize(400, 300);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		openBtn.addActionListener(this);
		saveBtn.addActionListener(this);

		fcPanel.add(openBtn);
		fcPanel.add(saveBtn);

		add(pathLabel, BorderLayout.NORTH);
		add(fileChooser, BorderLayout.CENTER);
		setVisible(true);
	}

	//METHODS
	@Override
	public void actionPerformed(ActionEvent e) {
		int returnValue;
		
		//파일 오픈 버튼에 대한 액션 이벤트 처리
		if(e.getSource() == openBtn) {
			returnValue = fileChooser.showOpenDialog(this);

			if(returnValue == JFileChooser.APPROVE_OPTION) { //실제 파일 오픈
				//선택된 파일의 경로 얻기
				String path = fileChooser.getSelectedFile().getPath();
				pathLabel.setText(path);
			}else {
				//사용자 취소 동작이 있음
			}
		} else if(e.getSource() == saveBtn) { //파일 저장 버튼에 대한 액션 이벤트 처리
			returnValue = fileChooser.showSaveDialog(this);

			if(returnValue == JFileChooser.APPROVE_OPTION) {
				//실제 파일 저장
			}else {
				//사용자 취소 동작이 있음
			}

		}
	}

	public static void main(String[] args) {
		FileChooserTest fct = new FileChooserTest();
	}
}





'Programming Language > JAVA' 카테고리의 다른 글

32. JOptionPane, JDialog - 대화 상자  (0) 2017.07.22
31. JMenuBar - 메뉴바 설정하기  (0) 2017.07.13
29. JTree - 트리  (0) 2017.06.29
28. JSlider - 슬라이더  (0) 2017.06.29
27. JSpinner - 스피너  (0) 2017.06.29

+ Recent posts