package javacodebook.gui.colorchooser; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; /** * 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); } }); } }