Hallo ihr,
ich bin gerade dabei ein Kartenspiel für die FH zuschreiben. Soweit funktioniert auch alles gut.
Wie im Code zu sehen ist, erstellt das Prog 12 Buttons mit den Eigenschaften der Karten (Form, Farbe, Anzahl, Füllung).
Wenn 3 Buttons angeklickt wurden wird überprüft ob ein Set (en.wikipedia.org/wiki/Set_(game)) gefunden wurde.
Jetzt bin ich allerdings über ein Problem gestolpert bei dem google nicht weiterhilft
. Um die Karten zu vergleichen muss ich ja wissen
welche Buttons gedrückt wurden. Deshalb hab ich mir in den ActionListener eine If/Else Anweisung eingebaut,
die mir in einen ActionEvent Array die angeklickten Button einträgt. Wenn ich den Array auswerte kommt ein recht wirrer String dabei raus:
java.awt.event.ActionEvent[ACTION_PERFORMED,cmd=html>Rechteck
Drei
blau
Schraffue</html>,when=1232658576869,modifiers=Button1] onjavax.swing.JToggleButton[,136,70,58x60,alignmentX=0.0,alignmentY=0.5,border=,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,
disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,right=14],paintBorder=true,paintFocus=true,pressedIcon=,
rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=<html>Rechteck
Drei
blau
Schraffue</html>]
Jetzt zu meiner Frage: Gibt es eine "komfortablere/übersichtlichere" Methode die mir die angeklickten Buttons liefert oder muss ich mit meiner Lösung leben.
Danke im Voraus und Grüße
DD2k
[/code][/quote]
ich bin gerade dabei ein Kartenspiel für die FH zuschreiben. Soweit funktioniert auch alles gut.
Wie im Code zu sehen ist, erstellt das Prog 12 Buttons mit den Eigenschaften der Karten (Form, Farbe, Anzahl, Füllung).
Wenn 3 Buttons angeklickt wurden wird überprüft ob ein Set (en.wikipedia.org/wiki/Set_(game)) gefunden wurde.
Jetzt bin ich allerdings über ein Problem gestolpert bei dem google nicht weiterhilft
welche Buttons gedrückt wurden. Deshalb hab ich mir in den ActionListener eine If/Else Anweisung eingebaut,
die mir in einen ActionEvent Array die angeklickten Button einträgt. Wenn ich den Array auswerte kommt ein recht wirrer String dabei raus:
java.awt.event.ActionEvent[ACTION_PERFORMED,cmd=html>Rechteck
Drei
blau
Schraffue</html>,when=1232658576869,modifiers=Button1] onjavax.swing.JToggleButton[,136,70,58x60,alignmentX=0.0,alignmentY=0.5,border=,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,
disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,right=14],paintBorder=true,paintFocus=true,pressedIcon=,
rolloverEnabled=false,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=<html>Rechteck
Drei
blau
Schraffue</html>]
Jetzt zu meiner Frage: Gibt es eine "komfortablere/übersichtlichere" Methode die mir die angeklickten Buttons liefert oder muss ich mit meiner Lösung leben.
Danke im Voraus und Grüße
DD2k
Code:
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import javax.swing.*;
public class SetTisch extends JFrame
implements ActionListener {
private static final long serialVersionUID = -1422800525782761329L;
private static ArrayList<SetKarte> stapel = new ArrayList<SetKarte>();
private JToggleButton [] karten = new JToggleButton[12];
private JPanel panelButton;
private int geklicktAnzahl = 0;
ActionEvent [] geklicktButton = new ActionEvent [3] ;
public void actionPerformed(ActionEvent e){
if(geklicktAnzahl < 2){
geklicktButton[geklicktAnzahl] = e;
geklicktAnzahl++;
}
else {
geklicktButton[geklicktAnzahl] = e;
for(int i = 0; i < 3; i++){
System.out.println(geklicktButton[i]);
geklicktAnzahl = 0;
}
}
}
public void buttonErstellen(ArrayList<SetKarte> stapel){
for(int i = 0; i < 12; i++){
String text = new String("<html>" + stapel.get(i).getForm()
+ "
" + stapel.get(i).getAnzahl()
+ "
" + stapel.get(i).getFarbe()
+ "
" + stapel.get(i).getFuellung()
+ "</html>");
this.karten[i] = new JToggleButton(text);
this.karten[i].setSize(80, 120);
this.karten[i].setBorder(null);
this.karten[i].setBackground(Color.lightGray);
karten[i].addActionListener(this);
this.panelButton.add(karten[i]);
}
this.getContentPane().add(panelButton);
this.pack();
}
public SetTisch(){
super("Tisch");
setSize(800,600);
setLocation(100,100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
panelButton = new JPanel(new GridLayout(2, 6, 10, 10));
}
public static void init(){
SetTisch tisch = new SetTisch();
stapel = SetStapel.StapelErstellen();
tisch.buttonErstellen(stapel);
tisch.setVisible(true);
}
public static void main(String args[]){
init();
}
}