dh-Materialien
Java Projekte
// JavaProject LColoredButtons


ColoredButtons unter Verwendung von Lambda-Ausdrücken. Vergleicht man den Programmcode des Projekts LColoredButtons mit dem des Projekts ColoredButtons, so sieht man, dass Programmierzeilen, die mit der Behandlung von Ereignissen (z.B. Mausklicks) zu tun haben, gegebenenfalls eleganter und kürzer formuliert werden können, wenn Lambda-Ausdrücke verwendet werden.

ColoredButtons.java

// LColoredButtons.java

import java.awt.*;
import javax.swing.*;


class BFrame extends JFrame { // Vererbung
    private static final long serialVersionUID = 0L;

    Image icon;
    JButton bred; // Swing-Komponenten
    JButton bgreen;
    JButton bblue;

    Color black = Color.BLACK; // Konstanten
    Color blue = Color.BLUE;
    Color green = Color.GREEN;
    Color red = Color.RED;
    Color yellow = Color.YELLOW;
    Color white = Color.WHITE;

    BFrame() {
        setTitle("Farbige Schaltflächen");
        icon = Toolkit.getDefaultToolkit().getImage("dh.png");
        setIconImage(icon);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(349, 301);
        setLayout(new FlowLayout(FlowLayout.CENTER, 40, 116));
        setLocationRelativeTo(null);

        bred = new JButton("Rot");
        add(bred);
        bred.addActionListener(e -> colorRed()); // Lambda-Ausdrücke

        bgreen = new JButton("Grün");
        add(bgreen);
        bgreen.addActionListener(e -> colorGreen());

        bblue = new JButton("Blau");
        add(bblue);
        bblue.addActionListener(e -> colorBlue());

        getContentPane().setBackground(Color.LIGHT_GRAY);

        setVisible(true);
    }

    void changeColors(JButton b, Color fgcol, Color bgcol) {
        b.setForeground(fgcol);
        b.setBackground(bgcol);
    }

    void colorRed() {
        changeColors(bred, white, red);
        changeColors(bgreen, white, red);
        changeColors(bblue, white, red);
    }

    void colorGreen() {
        changeColors(bred, black, green);
        changeColors(bgreen, black, green);
        changeColors(bblue, black, green);
    }

    void colorBlue() {
        changeColors(bred, yellow, blue);
        changeColors(bgreen, yellow, blue);
        changeColors(bblue, yellow, blue);
    }   
}


public class LColoredButtons {

    public static void main(String[] args) {
        new BFrame();
    }
}

Download LColoredButtons