프로그래밍 언어/JAVA

컬러 다이얼로그

· 코딩마이데이

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