HeyHo,
Ich bin absoluter Anfänger was Java (und Programmieren) angeht. Da ich lernen will, habe ich begonnen das Würfelspiel "Qwixx" zu digitalisieren. Ich habe dafür 48 Buttons in jeweils 4 Farben erstellt. Funktioniert auch wunderbar. Wenn einer der Button nun getätigt wird, soll sich die Farbe entsprchend verändern. Also z.B. von Rot in ein helles Rot. Für einen einzelnen Button bekomme ich das hin, jedoch möchte ich nicht allen 48 Buttons einzeln sagen, welche Farbe sie bekommen (was auch den Code sehr unübersichtlich machen würde). Gibt es eine möglichkeit, dies mit meinem Code so zu basteln, so dass es übersichtlich bleibt? (Es geht also darum, was ich in "ActionEvent" reinschreiben muss)
Vielen Dank für Inspirationen und Hilfestellungen
PS: Mein Code ist nicht der schönste und aufgeräumteste. Also einige Schönheitsfehler sind drinnen und ich habe die Farben auch nicht Original nach Qwixx genommen
Ich bin absoluter Anfänger was Java (und Programmieren) angeht. Da ich lernen will, habe ich begonnen das Würfelspiel "Qwixx" zu digitalisieren. Ich habe dafür 48 Buttons in jeweils 4 Farben erstellt. Funktioniert auch wunderbar. Wenn einer der Button nun getätigt wird, soll sich die Farbe entsprchend verändern. Also z.B. von Rot in ein helles Rot. Für einen einzelnen Button bekomme ich das hin, jedoch möchte ich nicht allen 48 Buttons einzeln sagen, welche Farbe sie bekommen (was auch den Code sehr unübersichtlich machen würde). Gibt es eine möglichkeit, dies mit meinem Code so zu basteln, so dass es übersichtlich bleibt? (Es geht also darum, was ich in "ActionEvent" reinschreiben muss)
Vielen Dank für Inspirationen und Hilfestellungen
Java:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MyFrame extends JFrame implements ActionListener {
public JButton btn[] = new JButton[48];
static int i;
MyFrame(){
for(i=0; i< btn.length; i++){
int reihe =(int) Math.floor(i/12);
int zahl =(i % 12)+2;
int zahl2 = zahl-2;
if(reihe == 0){
btn[i] = new JButton(""+(12-zahl2));
btn[i].setBounds((100*(i % 12)), 0, 50, 50);
btn[i].setBackground(Color.red);
btn[i].addActionListener(this);
this.add(btn[i]);
if(zahl==13){
btn[i].setText("X");
}
}
if(reihe == 1){
btn[i] = new JButton(""+(12-zahl2));
btn[i].setBounds(0 + (100*(i % 12)), 75, 50, 50);
btn[i].setBackground(Color.blue);
this.add(btn[i]);
if(zahl==13){
btn[i].setText("X");
}
}
if(reihe == 2){
btn[i] = new JButton(""+zahl);
btn[i].setBounds(0 + (100*(i % 12)), 150, 50, 50);
btn[i].setBackground(Color.green);
this.add(btn[i]);
if(zahl==13){
btn[i].setText("X");
}
}
if(reihe == 3){
btn[i] = new JButton(""+zahl);
btn[i].setBounds(0 + (100*(i % 12)), 225, 50, 50);
btn[i].setBackground(Color.yellow);
this.add(btn[i]);
if(zahl==13){
btn[i].setText("X");
}
}
}
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(null);
this.setSize(1500,500);
this.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
}
}
PS: Mein Code ist nicht der schönste und aufgeräumteste. Also einige Schönheitsfehler sind drinnen und ich habe die Farben auch nicht Original nach Qwixx genommen