▶ 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 |