Hintergrundfarbe durch Button click ändern ??

Shanks

Mitglied
ich wollte ein einfaches Frame mit einem Button schreiben bei dem sich die Hintergrundfarbe durch den click auf dem Button ändert. Bin Neuling in der GUI-Programmierung und komme bei dieser Anforderung nicht weiter 😀
Ich habe aber schon mal angefangen mit dem Code, weiss aber bei der actionPerform() Methode nicht mehr weiter.


Java:
 public class Hintergrund extends JFrame implements ActionListener{

    JButton alleFarben;

    public Hintergrund(String title) {

        super(title);
        alleFarben      =  new JButton("Farbe Aendern");

        alleFarben.setActionCommand("Aendern");
        alleFarben.addActionListener(this);

        setLayout(new FlowLayout());

        add(alleFarben);

        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

    //Methode zum aendern
    public void actionPerformed(ActionEvent evt) {

                         ???????
    }
}


Wäre für einige Tipps wie man da vorgehen könnte sehr dankbar.


gruß Shanks
 
oke also es sollen mehrere Farben kommen also sowas wie eine Verkettung sorry hab das vergessen 😀

Also nach jedem Klick eine andere Farbe



gruß Shanks
 
Also besteht dein eigentliches Problem darin, eine Zufallsfarbe zu generieren oder wie? Weil du musst ja in meinem Vorschlag nur noch Color.XYZ austauschen!
Java:
    	Color c = new Color(r.nextInt(256),r.nextInt(256),r.nextInt(256));
    	getContentPane().setBackground(c);

r = ein Random-Objekt (
Code:
Random r = new Random();
nach Zeile 3 z.B. einfügen)

Oder was ist jetzt genau dein Problem? Wobei hast du Schwierigkeiten=
 
Also die Reihenfolge verändert sich nicht aber es sollen halt mehrere Farben sein. Ich weiss nicht wie ich das ereignis mit der änderung der Farbe zusammen bringen soll. Es soll irgendwie mit getBackground() gemacht werden. ich hatte schon ne Idee aber die scheint mir viel zu umständlich zu sein.




gruß Shanks
 
Ja dann fülle eine Liste mit Farben und zähle bei jedme Klick eben den Index hoch, beim Ende fängst du wieder bei 0 an?! Sorry ich verstehe echt nicht wo dein Problem hier gerade liegt!
 

Zurück
Oben