Hallo Leute,
ich und ein Kumpel programmieren zur Zeit an einem "Lightsout" auf blueJ.
Wir haben ein Gui mit 25 Buttons. Nun versuchen wir, dass die Buttons auf "Konpfdruck" die Farbe von Gelb auf Schwarz und umgekehrt wechselt.
Das Problem: Es funktioniert nur bei einem einzigen Button.
Hier der Code, ein Lösungsvorschlag wäre knorke. (falls ihr mir sagen könntet, wie man text in so eine Codeform ändert, wäre das auch schön)
Java:
import javax.swing.SwingUtilities;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
public class Lightsout
{
int r=32;
int g=32;
int b=32;
static int i;
public Lightsout(){
Gui();
}
public void Gui()
{
JFrame fenster = new JFrame("Lights out");
fenster.setSize(/*1300,1036*/510,510);
fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
fenster.getContentPane();
fenster.setLocationRelativeTo(null);
fenster.setLayout(null);
fenster.setResizable(false);
fenster.setVisible(true);
JPanel panel = new JPanel();
panel.setLocation(0,0);
panel.setSize(/*1300,1036*/500,500);
panel.setLayout(new GridLayout (0,5,7,7));
fenster.add(panel);
JButton []button ={new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton(),new JButton()};
for(int i =0; i < 25;i++)
{
panel.add(button[i]);
button[i].setBackground(new Color(r,g,b));
}
panel.setVisible(true);
fenster.setVisible(true);
ActionListener wechseln = new ActionListener()
{
public void actionPerformed(ActionEvent w)
{
if(r==b)
{
r=255;
g=255;
b=0;
}
else
{
r=32;
g=32;
b=32;
}
button[i].setBackground(new Color(r,g,b));
SwingUtilities.updateComponentTreeUI(fenster);
/*panel.repaint();
fenster.repaint(); */
//button[i].setBackground(new Color(r,g,b));
}
};
button[i].addActionListener(wechseln);
SwingUtilities.updateComponentTreeUI(fenster);
}
}
Wir haben ein Gui mit 25 Buttons. Nun versuchen wir, dass die Buttons auf "Konpfdruck" die Farbe von Gelb auf Schwarz und umgekehrt wechselt.
Das Problem: Es funktioniert nur bei einem einzigen Button.
Hier der Code, ein Lösungsvorschlag wäre knorke. (falls ihr mir sagen könntet, wie man text in so eine Codeform ändert, wäre das auch schön)
Zuletzt bearbeitet: