/**************************************************/ /* Prof. Dr. Carsten Vogt */ /* FH Koeln, Fak. 07 / Nachrichtentechnik */ /* http://www.nt.fh-koeln.de/vogt */ /* */ /* Das Programm zeigt die Verwendung von Slidern. */ /**************************************************/ import java.awt.*; import javax.swing.*; import javax.swing.event.*; class SliderDemo extends JFrame { // Drei Slider, mit denen der Rot-, Blau- und Gruenanteil // eines zweiten Frames festgelegt werden: // (Parameter: Ausrichtung, min. / max. / voreingestellter Wert) JSlider redSlider = new JSlider(JSlider.HORIZONTAL,0,255,255); JSlider greenSlider = new JSlider(JSlider.HORIZONTAL,0,255,0); JSlider blueSlider = new JSlider(JSlider.HORIZONTAL,0,255,0); // Frame, dessen Farbe geaendert werden soll: Frame frm; // Konstruktor: Erzeugung der Grafik-Oberflaeche: SliderDemo(String s) { // Erzeugen und Positionieren des Fensterrahmens: super(s); setLocation(100,200); // Erzeugung des Frames, dessen Farbe geaendert werden soll: frm = new Frame(); frm.setSize(new Dimension(200,200)); frm.setLocation(480,200); frm.setBackground(Color.red); frm.setVisible(true); // Box fuer Rechteck und Slider: Box b = Box.createVerticalBox(); getContentPane().add(b); // Hilfsvariable fuer Texte: JLabel lab; // Überschrift: lab = new JLabel("Slider zur Farbgestaltung:"); lab.setFont(new Font("Arial",Font.BOLD,22)); lab.setForeground(Color.black); b.add(lab); // Slider: lab = new JLabel("Rot-Anteil:"); lab.setFont(new Font("Arial",Font.BOLD,22)); lab.setForeground(Color.black); b.add(lab); // Festlegung der Anzeige der Skala: redSlider.setPaintLabels(true); redSlider.setPaintTicks(true); redSlider.setMajorTickSpacing(32); redSlider.setMinorTickSpacing(16); b.add(redSlider); lab = new JLabel("Gruen-Anteil:"); lab.setFont(new Font("Arial",Font.BOLD,22)); lab.setForeground(Color.black); b.add(lab); greenSlider.setPaintLabels(true); greenSlider.setPaintTicks(true); greenSlider.setMajorTickSpacing(32); greenSlider.setMinorTickSpacing(16); b.add(greenSlider); lab = new JLabel("Blau-Anteil:"); lab.setFont(new Font("Arial",Font.BOLD,22)); lab.setForeground(Color.black); b.add(lab); blueSlider.setPaintLabels(true); blueSlider.setPaintTicks(true); blueSlider.setMajorTickSpacing(32); blueSlider.setMinorTickSpacing(16); b.add(blueSlider); // Listener erzeugen und an die Slider anbinden: SliderListener sl = new SliderListener(); redSlider.addChangeListener(sl); greenSlider.addChangeListener(sl); blueSlider.addChangeListener(sl); // Komponenten anordnen und sichtbar machen: pack(); setVisible(true); } // Listener fuer Slider-Aenderungen: class SliderListener implements ChangeListener { // Aktion, wenn sich Zustand des Sliders aendert: public void stateChanged(ChangeEvent e) { // Neue Farbe ergibt sich aus den Werten der Slider: frm.setBackground(new Color(redSlider.getValue(),greenSlider.getValue(),blueSlider.getValue())); } } } // Hauptprogramm public class Slider { public static void main(String args[]) { new SliderDemo("Farbmischung"); } }