컬러 다이얼로그
JColorChooser
JColorChooser를 이용하면 사용자가 색을 선택할 수 있는 컬러 다이얼로그를 출력할 수 있습니다.
컬러 다이얼로그 생성 및 출력
1. 컬러 다이얼로그 출력
JColorChooser 객체를 생성하여 컨텐트팬이나 패널에 컴포넌트로 삽입하여 사용할 수 있지만, 다음과 같이 JColorChooser의 static 메소드인 showDialog()를 호출하면 독립적으로 출력하여 동작으로 컬러 다이얼로그를 출력할 수 있습니다.
Color selectedColor = JColorChooser.showDialog(null, "Color", Color.YELLOW);
showDialog() 메서드는 사용자가 선택한 색을 리턴합니다.
2. 사용자가 선택한 색 얻기
showDialog()는 "확인" 버튼을 누르면 색을 리턴하며, "취소" 버튼이나 다이얼로그를 강제로 닫는 경우 null을 리턴합니다. 그러므로 다음과 같이 판별하는 코드가 필요합니다.
if (selectedColor != null) { // 사용자가 색을 선택하고 "확인" 버튼을 누른 경우
// 사용자가 선택한 색 selectedColor 사용
}
JColorChooser를 이용한 컬러 다이얼로그 사용
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class MenuAndColorChooserEx extends JFrame {
private JLabel label = new JLabel("Hello");
public MenuAndColorChooserEx() {
setTitle("JColorChooser 예제");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setFont(new Font("Ravie", Font.ITALIC, 30));
c.add(label, BorderLayout.CENTER);
createMenu();
setSize(250,200);
setVisible(true);
}
private void createMenu() {
JMenuBar mb = new JMenuBar();
JMenuItem colorMenuItem = new JMenuItem("Color");
JMenu fileMenu = new JMenu("Text");
// Color 메뉴아이템에 Action 리스너 등록
colorMenuItem.addActionListener(new MenuActionListener());
fileMenu.add(colorMenuItem);
mb.add(fileMenu);
this.setJMenuBar(mb);
}
// Color 메뉴아이템이 선택될 때 실행되는 Action 리스너
class MenuActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String cmd = e.getActionCommand(); // 메뉴아이템의 이름 리턴
if(cmd.equals("Color")) { // Color 메뉴아이템의 경우
// 컬러 다이얼로그를 출력하고 사용자가 선택한 색을 알아온다.
Color selectedColor = JColorChooser.showDialog(null,"Color",Color.YELLOW);
// 취소 버튼을 누르거나 그냥 다이얼로그를 닫는 경우 selectedColor는 null이다.
if(selectedColor != null)
label.setForeground(selectedColor);
}
}
}
public static void main(String [] args) {
new MenuAndColorChooserEx();
}
}
[실행 결과]


'프로그래밍 언어 > JAVA' 카테고리의 다른 글
| 자바 오디오 다루기 (0) | 2025.09.21 |
|---|---|
| 탭팬 (0) | 2025.09.18 |
| 파일 다이얼로그 (0) | 2025.09.12 |
| 팝업 다이얼로그 (1) | 2025.09.09 |
| 모달 다이얼로그와 모달리스 다이얼로그 (0) | 2025.09.06 |