dh-Materialien
Java Projekte
// JavaProject ColoredGrid


24 Panels werden per Mausklick zufällig eingefärbt. Bei dem Parameter, welcher der Methode setBackground jeweils übergeben wird, handelt es sich nicht um einen Farbwert, sondern um ein Farbobjekt vom Typ Color.

Die Klasse Color stellt Konstanten zur Verfügung, wie z.B. Color.BLACK, Color.CYAN, Color.DARK_GRAY, Color.ORANGE, welche die entsprechenden Farben referenzieren.

Darüberhinaus kann jede Farbe des sRGB-Farbraumes erzeugt werden. Beispielsweise sind etwa folgende Aufrufe möglich: Color(0.7f, 0f, 0.35f); (die Parameter sind float-Literale; die Farbwerte liegen zwischen 0 und 1) oder Color(12, 165, 201); (die Parameter sind ganzzahlig; die Farbwerte liegen zwischen 0 und 255).

ColoredGrid.java

// ColoredGrid.java

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.GridLayout;

import javax.swing.*;


class CMenuBar extends JMenuBar implements ActionListener {
    private static final long serialVersionUID = 0L;

    JMenu start;
    JMenuItem start_dye;
    JMenuItem start_clear;
    CFrame cfr;

    public CMenuBar(CFrame cfr) {
        this.cfr = cfr;

        start = new JMenu("Start");
        add(start);

        start_dye = new JMenuItem("Färben");
        start_dye.addActionListener(this);
        start.add(start_dye);

        start_clear = new JMenuItem("Löschen");
        start_clear.addActionListener(this);
        start.add(start_clear);
    }

    public void actionPerformed(ActionEvent object) {
        if (object.getSource() == start_dye) cfr.dyePanels();
        if (object.getSource() == start_clear) cfr.clearPanels();
    }
}


class CFrame extends JFrame {
    private static final long serialVersionUID = 0L;

    Image icon;
    CMenuBar menubar;
    JPanel[] panels; // Arrays
    Color bgcol;

    public CFrame() {
        setTitle("Bunte Kacheln");
        icon = Toolkit.getDefaultToolkit().getImage("dh.png");
        setIconImage(icon);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(349, 301);
        setLocationRelativeTo(null);

        menubar = new CMenuBar(this);
        setJMenuBar(menubar);

        setBackground(Color.WHITE);
        setLayout(new GridLayout(6, 4, 2, 2));

        bgcol = new Color(230, 230, 230);

        panels = new JPanel[24];
        for (int i=0; i<24; i++) { // Schleifen
            panels[i] = new JPanel();
            panels[i].setBackground(bgcol);
            add(panels[i]);
        }

        setVisible(true);
    }

    public void dyePanels() {
        int r, g, b;

        for (int i=0; i<24; i++) {
        r = (int) (255*Math.random()); // Typumwandlungen
        g = (int) (255*Math.random());
        b = (int) (255*Math.random());
        Color newcol = new Color (r, g, b);
        panels[i].setBackground(newcol);
        }
    }

    public void clearPanels() {
        for (int i=0; i<24; i++) {
            panels[i].setBackground(bgcol);
        }
    }
}


public class ColoredGrid {

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

Download ColoredGrid