Hallo,
ich habe folgendes Problem: Ich habe eine GUI und darauf mehrere Panels, Progressbars, Labels, Layouts (nicht unbedingt schön aber es tut seinen Dienst soweit). Nun will Ich durch einen Button nacheinander (insgesamt 5) Labels einem Panel hinzufügen mit einer actionPerformed-Methode, jedoch klappt das ganze nicht so reibungslos wie Anfangs gedacht. Ist vllt bisschen viel Code und schlecht kommentiert hoffe aber man findet sich zurecht. (ActionPerformed ganz runter scrollen und der Rest müsste soweit bei den Ersten drei (panlA, panlA1, panlA2 stehen).
ich habe folgendes Problem: Ich habe eine GUI und darauf mehrere Panels, Progressbars, Labels, Layouts (nicht unbedingt schön aber es tut seinen Dienst soweit). Nun will Ich durch einen Button nacheinander (insgesamt 5) Labels einem Panel hinzufügen mit einer actionPerformed-Methode, jedoch klappt das ganze nicht so reibungslos wie Anfangs gedacht. Ist vllt bisschen viel Code und schlecht kommentiert hoffe aber man findet sich zurecht. (ActionPerformed ganz runter scrollen und der Rest müsste soweit bei den Ersten drei (panlA, panlA1, panlA2 stehen).
Java:
public class Gui extends Observer implements ActionListener {
JLabel spaceline = new JLabel(" ");
JProgressBar prg0 ;
JProgressBar prg1 ;
JProgressBar prg2 ;
JProgressBar prg3 ;
JProgressBar prg4 ;
Wettbuero wettbuero;
JButton addButton;
JTextField jtf1;
JTextField jtf2;
JTextField jtf3;
JLabel labelA2_1;
JLabel labelA2_2;
JLabel labelA2_3;
JLabel labelA2_4;
JLabel labelA2_5;
JPanel panlA2;
JPanel panlA;
int i = 0;
public Gui(Wettbuero wettbuero, Rennschnecke rennschnecke) throws IOException {
this.wettbuero = wettbuero;
this.rennschnecke = rennschnecke;
this.rennschnecke.attach(this);
JFrame frame = new JFrame("Schneckenrennen");
frame.setSize(675,490);
frame.setLocation(500, 225);
frame.setResizable(false);
frame.setLayout(new BorderLayout(0,10));
JLabel hintergrund = new JLabel(new ImageIcon(ImageIO.read(new File("C:\\Users\\Fischer.FUERTH\\Pictures\\Saved Pictures\\backgroudImage.jpg"))));
frame.add(hintergrund);
hintergrund.setLayout(new FlowLayout());
// Listenausgabe der Rennteilnehmer
panlA = new JPanel();
panlA.setLayout(new BorderLayout());
frame.add(BorderLayout.NORTH, panlA);
JPanel panlA1 = new JPanel();
panlA1.setLayout(new GridLayout(6, 4, 10, 10));
panlA.add(BorderLayout.WEST, panlA1);
panlA2 = new JPanel();
panlA2.setLayout(new GridLayout(6, 4, 10, 10));
panlA.add(BorderLayout.EAST, panlA2);
JLabel labelA1_1 = new JLabel("Name: " + wettbuero.getRennen().getTeilnehmer().get(0).getName() + " "
+ "Rasse: " + wettbuero.getRennen().getTeilnehmer().get(0).getRasse() + " "
+ "Max Geschw.:" + wettbuero.getRennen().getTeilnehmer().get(0).getMaxgs());
JLabel labelA1_2 = new JLabel("Name: " + wettbuero.getRennen().getTeilnehmer().get(1).getName() + " "
+ "Rasse: " + wettbuero.getRennen().getTeilnehmer().get(1).getRasse() + " "
+ "Max Geschw.:" + wettbuero.getRennen().getTeilnehmer().get(1).getMaxgs());
JLabel labelA1_3 = new JLabel("Name: " + wettbuero.getRennen().getTeilnehmer().get(2).getName() + " "
+ "Rasse: " + wettbuero.getRennen().getTeilnehmer().get(2).getRasse() + " "
+ "Max Geschw.:" + wettbuero.getRennen().getTeilnehmer().get(2).getMaxgs());
JLabel labelA1_4 = new JLabel("Name: " + wettbuero.getRennen().getTeilnehmer().get(3).getName() + " "
+ "Rasse: " + wettbuero.getRennen().getTeilnehmer().get(3).getRasse() + " "
+ "Max Geschw.:" + wettbuero.getRennen().getTeilnehmer().get(3).getMaxgs());
JLabel labelA1_5 = new JLabel("Name: " + wettbuero.getRennen().getTeilnehmer().get(4).getName() + " "
+ "Rasse: " + wettbuero.getRennen().getTeilnehmer().get(4).getRasse() + " "
+ "Max Geschw.:" + wettbuero.getRennen().getTeilnehmer().get(4).getMaxgs());
panlA1.add(labelA1_1);
panlA1.add(labelA1_2);
panlA1.add(labelA1_3);
panlA1.add(labelA1_4);
panlA1.add(labelA1_5);
// Wette hinzufügen
JPanel panlB = new JPanel();
panlB.setLayout(new GridLayout(1, 1));
frame.add(BorderLayout.CENTER, panlB);
JPanel panlB1 = new JPanel();
panlB1.setLayout(new GridLayout(4, 1, 0, 10));
panlB.add(BorderLayout.WEST, panlB1);
JPanel panlC = new JPanel();
panlC.setLayout(new GridLayout(4, 1, 0, 10));
frame.add(BorderLayout.WEST, panlC);
JPanel panlD1 = new JPanel();
panlB1.setLayout(new GridLayout(4, 1, 0, 10));
panlB.add(BorderLayout.EAST, panlD1);
jtf1 = new JFormattedTextField();
jtf2 = new JFormattedTextField();
jtf3 = new JFormattedTextField();
JLabel labelB1 = new JLabel(" Wetteinsatz: ");
JLabel labelB2 = new JLabel("Rennschnecke: ");
JLabel labelB3 = new JLabel(" Spieler: ");
addButton = new JButton("Wette hinzufügen");
addButton.addActionListener(this);
panlC.add(labelB1);
panlC.add(labelB2);
panlC.add(labelB3);
panlB1.add(jtf1);
panlB1.add(jtf2);
panlB1.add(jtf3);
panlD1.add(spaceline);
panlD1.add(spaceline);
panlD1.add(addButton);
//Ausgabe Rennen + Max Geschw
JPanel panl0 = new JPanel();
panl0.setLayout(new BorderLayout(10,10));
frame.add(BorderLayout.SOUTH, panl0);
JPanel panl1 = new JPanel();
panl1.setLayout(new GridLayout(6,1,20,10));
panl0.add(BorderLayout.CENTER,panl1);
JPanel panl2 = new JPanel();
panl2.setLayout(new GridLayout(6,1,20,10));
panl0.add(BorderLayout.EAST, panl2);
JLabel label1 = new JLabel("Max Geschw.:" + wettbuero.getRennen().getTeilnehmer().get(0).getMaxgs());
JLabel label2 = new JLabel("Max Geschw.:" + wettbuero.getRennen().getTeilnehmer().get(1).getMaxgs());
JLabel label3 = new JLabel("Max Geschw.:" + wettbuero.getRennen().getTeilnehmer().get(2).getMaxgs());
JLabel label4 = new JLabel("Max Geschw.:" + wettbuero.getRennen().getTeilnehmer().get(3).getMaxgs());
JLabel label5 = new JLabel("Max Geschw.:" + wettbuero.getRennen().getTeilnehmer().get(4).getMaxgs());
prg0 = new JProgressBar(0, (int) wettbuero.getRennen().getrStreckenlaenge());
prg0.setStringPainted(true);
prg0.setString(wettbuero.getRennen().getTeilnehmer().get(0).getName());
prg1 = new JProgressBar(0, (int) wettbuero.getRennen().getrStreckenlaenge());
prg1.setStringPainted(true);
prg1.setString(wettbuero.getRennen().getTeilnehmer().get(1).getName());
prg2 = new JProgressBar(0, (int) wettbuero.getRennen().getrStreckenlaenge());
prg2.setStringPainted(true);
prg2.setString(wettbuero.getRennen().getTeilnehmer().get(2).getName());
prg3 = new JProgressBar(0, (int) wettbuero.getRennen().getrStreckenlaenge());
prg3.setStringPainted(true);
prg3.setString(wettbuero.getRennen().getTeilnehmer().get(3).getName());
prg4 = new JProgressBar(0, (int) wettbuero.getRennen().getrStreckenlaenge());
prg4.setStringPainted(true);
prg4.setString(wettbuero.getRennen().getTeilnehmer().get(4).getName());
panl1.add(prg0);
panl1.add(prg1);
panl1.add(prg2);
panl1.add(prg3);
panl1.add(prg4);
panl2.add(label1);
panl2.add(label2);
panl2.add(label3);
panl2.add(label4);
panl2.add(label5);
frame.setVisible(true);
}
public void prg(){
prg0.setValue((int) wettbuero.getRennen().getTeilnehmer().get(0).getdStrecke());
prg1.setValue((int) wettbuero.getRennen().getTeilnehmer().get(1).getdStrecke());
prg2.setValue((int) wettbuero.getRennen().getTeilnehmer().get(2).getdStrecke());
prg3.setValue((int) wettbuero.getRennen().getTeilnehmer().get(3).getdStrecke());
prg4.setValue((int) wettbuero.getRennen().getTeilnehmer().get(4).getdStrecke());
}
@Override
public void update() {
prg();
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == addButton){
int wetteinsatz = Integer.parseInt(jtf1.getText());
String rennschnecke = jtf2.getText();
String spieler = jtf3.getText();
wettbuero.wetteAnnehmen(wetteinsatz,rennschnecke,spieler);
if (i == 0) {
labelA2_1 = new JLabel("Wetteinsatz : " + wetteinsatz + " "
+ "Rennschnecke: " + rennschnecke + " "
+ "Spieler: " + spieler + " ");
panlA2.add(labelA2_1);
panlA2.setVisible(true);
} else if (i == 1) {
labelA2_2 = new JLabel("Wetteinsatz : " + wetteinsatz + " "
+ "Rennschnecke: " + rennschnecke + " "
+ "Spieler: " + spieler + " ");
panlA2.add(labelA2_2);
} else if ( i == 2) {
labelA2_3 = new JLabel("Wetteinsatz : " + wetteinsatz + " "
+ "Rennschnecke: " + rennschnecke + " "
+ "Spieler: " + spieler + " ");
panlA2.add(labelA2_3);
} else if ( i == 3) {
labelA2_4 = new JLabel("Wetteinsatz : " + wetteinsatz + " "
+ "Rennschnecke: " + rennschnecke + " "
+ "Spieler: " + spieler + " ");
panlA2.add(labelA2_4);
}else if (i == 4) {
labelA2_5 = new JLabel("Wetteinsatz : " + wetteinsatz + " "
+ "Rennschnecke: " + rennschnecke + " "
+ "Spieler: " + spieler + " ");
panlA2.add(labelA2_5);
}else{
System.out.println("Keine weiteren Wetten möglich !");
panlA.add(BorderLayout.EAST, panlA2);
}
i++;
}
}
}
[\Code]