package javacodebook.gui.colorchooser;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;


/**
 * @author Benjamin Rusch
 * 
 * In diesem Beispiel wird beim Klick auf dem Menüpunkt "Farbe setzen"
 * ein ColorChooser Dialog geöffnet. 
 * Beim Wählen einer Farbe wird die Hintergrundfarbe vom Frame entsprechend
 * angepasst.
 */


public class ColorChooserJFrame  extends JFrame {
	
	private Container content = null;
	private JMenuBar mb = new JMenuBar();
	private JMenu file = new JMenu("Datei");
	private JMenuItem newColor	= new JMenuItem("Farbe setzen");
	
	/**
 	*	Konstruktor von ColorChooserJFrame.  
 	*/	
	public ColorChooserJFrame(String title) {
		
		super(title);
 	    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		content = this.getContentPane();

		this.setJMenuBar(mb);
		mb.add(file);
		file.add(newColor);		
		
		// an das MenuItem newFile wird ein Listener angemeldet, der
		// beim Anklicken informiert wird
		newColor.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent ae){
					// Der ColorChooserDialog wird gebaut
					JColorChooser cc = new JColorChooser();
					
					// Wie bei den anderen Swing Dialogen wird hier über 
					// eine show-Methode der Dialog sichtbar gemacht. 
					// Beim Klicken von "Ok" gibt sie die ausgewählte Farbe 
					// als Rückgabewert aus
					Color chosenColor= cc.showDialog(ColorChooserJFrame.this,
							"Farbpalette",Color.blue);
					
					// Um zu zeigen, dass die Farbe richtig bestimmt werden kann,
					// wird sie als Hintegrundfarbe des Frames gesetzt
					if(chosenColor!=null)
						content.setBackground(chosenColor);
				}		
		});
	}
}
