Problem mit label.setIcon

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hi, ich habe eine Gui in der ich einem Label ein Icon zugeordnet habe. Das funktioniert auch, nur wenn ich versuche das ganze über setIcon neu zu setzen, ist kein Bild vorhanden, hier erstmal Auszüge aus meiner gui. Wenn mehr Quellcode benötigt wird poste ich den selbstverständlich auch.

Code:
public class Gui extends JFrame


{         // Anfang Variablen
          private JCheckBox Hubraum = new JCheckBox();
          private JCheckBox Leistung = new JCheckBox();
          private JCheckBox Tempo = new JCheckBox();
          private JCheckBox NullHundert = new JCheckBox();
          private JLabel WertH = new JLabel();
          private JLabel WertT = new JLabel();
          private JLabel WertL = new JLabel();
          private JLabel WertNH = new JLabel();
          private JLabel PcHubraum = new JLabel();
          private JLabel PcTempo = new JLabel();
          private JLabel PcLeistung = new JLabel();
          private JLabel PcNullHundert = new JLabel();
          private JButton NeuesSpiel = new JButton();
          private JButton Beenden = new JButton();
          private JButton Zug = new JButton();
          private JLabel Name = new JLabel();
          private JLabel PcName = new JLabel();
          Image dasBild = Toolkit.getDefaultToolkit().getImage("fastback.jpg");
          JLabel Bild = new JLabel(new ImageIcon(dasBild));
          JLabel PcBild = new JLabel(new ImageIcon(dasBild));
Code:
...
 Spielkarte Help=myGui.Spieler.getObersteKarte();
     myGui.Bild.setIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage("gto.jpg")));
     myGui.Name.setText(Help.getName());
     myGui.WertH.setText(Integer.toString(Help.getHubraum()) + " ccm");
     myGui.WertL.setText(Integer.toString(Help.getLeistung()) + " Ps");
     myGui.WertT.setText(Integer.toString(Help.getTempo()) + " km/h");
     myGui.WertNH.setText(Integer.toString(Help.getNullHundert()) + " s");
...

Irgendeine idee? Muss ich vll das Bild neuzeichnen lassen? Steh ziehmlich auf dem Schlauch, da wir so etwas in der Schule noch nicht gemacht haben.
 
G

Guest

Gast
Es passiert einfach gar nichts, also bei dem Bild das ich mit setIcon überschreibe, das andere funktioniert ohne Probleme.
 

SamHotte

Top Contributor
Hmm, mit mehr Code könnte man evtl. mehr erkennen - es gibt verschiedene mögliche Ursachen:
- du findest das Bild nicht
- du zeichnest die Komponente nicht neu
- es gibt eine Exception, die du aber "begräbst"
 
G

Guest

Gast
Hier der gesamte code, meine Vermutung ist das ich die Komponente nicht neu zeichne, weis aber gerade auch nicht wie das gehen soll.

Code:
import java.awt.*;       //Importiert das Package java.awt.
import java.awt.event.*; //Importiert das Package java.awt.event.
import javax.swing.*;    //Importiert das Package java.swing

/**
  *
  * Beschreibung.
  *
  * @version 1.0 vom 07.02.2006
  * @author
  */

public class Gui extends JFrame


{         // Anfang Variablen
          private JCheckBox Hubraum = new JCheckBox();
          private JCheckBox Leistung = new JCheckBox();
          private JCheckBox Tempo = new JCheckBox();
          private JCheckBox NullHundert = new JCheckBox();
          private JLabel WertH = new JLabel();
          private JLabel WertT = new JLabel();
          private JLabel WertL = new JLabel();
          private JLabel WertNH = new JLabel();
          private JLabel PcHubraum = new JLabel();
          private JLabel PcTempo = new JLabel();
          private JLabel PcLeistung = new JLabel();
          private JLabel PcNullHundert = new JLabel();
          private JButton NeuesSpiel = new JButton();
          private JButton Beenden = new JButton();
          private JButton Zug = new JButton();
          private JLabel Name = new JLabel();
          private JLabel PcName = new JLabel();
          Image dasBild = Toolkit.getDefaultToolkit().getImage("fastback.jpg");
          JLabel Bild = new JLabel(new ImageIcon(dasBild));
          JLabel PcBild = new JLabel(new ImageIcon(dasBild));

          Autoquartett Autoq = new Autoquartett();
          Handkarten Spieler = new Handkarten();
          Handkarten Computer = new Handkarten();
          Spielkartenpaeckchen Stapel = new Spielkartenpaeckchen();
          /* Variable die den Spieler enthält der am Zug ist.
             Stichsieger= 1: Spieler am Zug.
             Stichsieger= 2: Computer am Zug.
          */
          int stichSieger=1;
          /*Zustandsvariable, die beschreibt in welchem Zustand sich das Programm befindet,
            nähere Erläuterungen zu den Zuständen sie mehtode ZugActionPerformed.
          */
          int zustand=0;
          // Ende Variablen








        public Gui(String title)
        {
          // Frame-Initialisierung
          super(title);
          addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent evt) { System.exit(0); }
          });
          int frameWidth = 1024;
          int frameHeight = 768;
          setSize(frameWidth, frameHeight);

              Container cp = new JComponent()
              {
              public void paintComponent( Graphics g, String Grafikpfad )
              {
                //dasBild= Toolkit.getDefaultToolkit().getImage(Grafikpfad);
                //g.drawImage( dasBild, 10, 10, this );
              }
          };
          setContentPane (cp);
          cp.setLayout(null);
          
          
          //Anfang Komponenten
          //Elemente der Gui werden intialisiert und die Attribute
          //Wie Position, Größe Name werden festgelegt. Die Methode
          //cp.add fügt sie dem Container hinzu.

          Hubraum.setBounds(50, 400, 200, 40);
          Hubraum.setText("Hubraum");
          cp.add(Hubraum);
          Leistung.setBounds(50, 520, 200, 40);
          Leistung.setText("Leistung");
          cp.add(Leistung);
          Tempo.setBounds(50, 460, 200, 40);
          Tempo.setText("Tempo");
          cp.add(Tempo);
          NullHundert.setBounds(50, 578, 200, 40);
          NullHundert.setSelected(false);
          NullHundert.setText("0-100 km/h");
          cp.add(NullHundert);
          WertH.setBounds(257, 411, 100, 16);
          WertH.setText("0");
          WertH.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
          cp.add(WertH);
          WertT.setBounds(257, 471, 100, 16);
          WertT.setText("0");
          WertT.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
          cp.add(WertT);
          WertL.setBounds(257, 531, 100, 16);
          WertL.setText("0");
          WertL.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
          cp.add(WertL);
          WertNH.setBounds(257, 591, 100, 16);
          WertNH.setText("0");
          WertNH.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
          cp.add(WertNH);
          PcHubraum.setBounds(700, 411, 200, 16);
          PcHubraum.setText("Hubraum");
          PcHubraum.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
          cp.add(PcHubraum);
          PcTempo.setBounds(700, 471, 200, 16);
          PcTempo.setText("Tempo");
          PcTempo.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
          cp.add(PcTempo);
          PcLeistung.setBounds(700, 531, 200, 16);
          PcLeistung.setText("Leistung");
          PcLeistung.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
          cp.add(PcLeistung);
          PcNullHundert.setBounds(700, 591, 200, 16);
          PcNullHundert.setText("0-100 km/h");
          PcNullHundert.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
          cp.add(PcNullHundert);
          Name.setBounds(50, 340, 400, 16);
          Name.setText("Name");
          Name.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
          cp.add(Name);
          PcName.setBounds(700, 340, 200, 16);
          PcName.setText("Name");
          PcName.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
          cp.add(PcName);
          

          Bild.setBounds(10,10,dasBild.getWidth(null),dasBild.getHeight(null));
          cp.add(Bild);

          PcBild.setBounds(500,10,dasBild.getWidth(null),dasBild.getHeight(null));
          cp.add(PcBild);


          //Buttons

          //Der Button NeuesSpiel wird Intialisiert
          NeuesSpiel.setBounds(422, 400, 150, 60);
          NeuesSpiel.setText("NeuesSpiel");
          cp.add(NeuesSpiel);
          
          //Der Listener fängt ein Ereignis auf dem Button ab
          //und startet die Methode NeuesSpielActionPerformed.
          NeuesSpiel.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
             NeuesSpielActionPerformed(evt);
            }
          });

          Beenden.setBounds(422, 500, 150, 60);
          Beenden.setText("Beenden");
          cp.add(Beenden);

          //Der Listener fängt ein Ereignis auf dem Button ab wie einen Klick
          //auf den Button und startet die Methode BeendenActionPerformed.
          Beenden.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
              BeendenActionPerformed(evt);
            }
          });

          Zug.setBounds(422, 600, 150, 60);
          Zug.setText("Zug");
          cp.add(Zug);

          //Der Listener fängt ein Ereignis auf dem Button ab wie einen Klick
          //auf den Button und startet die Methode ZugActionPerformed.
          Zug.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent evt) {
              ZugActionPerformed(evt);
            }
          });


          // Ende Komponenten

          //Sorgt dafü, dass die Größe der Elemente veränderbar ist.
          setResizable(true);
          //Macht die Elemente der Gui sichtbar.
          setVisible(true);
        }

  // Anfang Ereignisprozeduren
  public void NeuesSpielActionPerformed(ActionEvent evt)
  {
     //Löschen der bestehenden Handkarten:
     while (!Spieler.istLeer())
     {
       Spieler.EntferneObersteKarte();
     }
     while (!Computer.istLeer())
     {
       Computer.EntferneObersteKarte();
     }
     //Erstellen der neuen Handkarten:
     // Der Stapel wird gemischt
    Stapel.mischen();
    // Die ersten 16 Kartenaus dem Spielkartenpaeckchen werden dem Spieler ausgeteilt, d.h seinem Stapel zugefügt.
    for (int i=0; i<=15; i++)
     { Spielkarte Help=Stapel.getKarte(i);
       Spieler.FuegeAn(Help);
     }
    // Die zweiten 16 Kartenaus dem Spielkartenpaeckchen werden dem Computer ausgeteilt, d.h seinem Stapel zugefügt.
    for (int i=16; i<=31; i++)
     { Spielkarte Help=Stapel.getKarte(i);
       Computer.FuegeAn(Help);
     }
     
     //Die Daten der obersten Spielkarte des Spielers werden in die Gui eingelesen
     Spielkarte Help=Spieler.getObersteKarte();
     Name.setText(Help.getName());
     WertH.setText(Integer.toString(Help.getHubraum()) + " ccm");
     WertL.setText(Integer.toString(Help.getLeistung()) + " Ps");
     WertT.setText(Integer.toString(Help.getTempo()) + " km/h");
     WertNH.setText(Integer.toString(Help.getNullHundert()) + " s");


  }

  public void BeendenActionPerformed(ActionEvent evt)
  {
   //Beendet das Spiel
   System.exit(0);
  }

   /**<table>
     <tr>
     <td valign=top>[b]vorher[/b]</td>
     <td valign=top>
     Eine Gui wurde erzeugt.

     </td>
     </tr>
     <tr>
     <td valign=top>[b]nachher[/b]</td>
     <td valign=top>

     Der Spieler, der den Stich gewinnt, hat beide Spielkarten an seinen
     Stapel angefügt bekommen.
     </td>
     </tr>
     </table>
   */
  public void ZugActionPerformed(ActionEvent evt)
         /*Die if Abfrage findet heraus, ob beide Spieler noch Karten besitzen,
           ist das nicht der Fall wird der Sieger ausgegeben.
         */
     {      if (Spieler.istLeer())
               {PcHubraum.setText("Sieger");
                PcLeistung.setText("Sieger");
                PcTempo.setText("Sieger");
                PcName.setText("Sieger");
                PcNullHundert.setText("Sieger");
               }
            else if (Computer.istLeer())
               {WertH.setText("Sieger");
                WertL.setText("Sieger");
                WertT.setText("Sieger");
                WertNH.setText("Sieger");
                Name.setText("Sieger");

               }


            // Fragt den Zustand ab und löst die Entsprechenden Methoden aus.
            else if (zustand==0)


               {
                /*-Der Spieler ist am Zug
                  -Die Karte des Spielers ist aufgedeckt
                  -Die Karte des Pcs ist unbekannt
                */
                
                /*Fragt ab ob der Spieler sich entschieden hat,
                falls nicht wird nichts ausgeführt*/
                if (EntscheidungsAbfrageSpieler())
                {
                 EntscheidungsAbfrageSpieler();
                 //Schreibt die Daten der Spielkarte des Computers in die Gui.
                 Spielkarte Help=Computer.getObersteKarte();
                 PcBild.setIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(Help.getGrafikpfad())));
                 PcName.setText(Help.getName());
                 PcHubraum.setText("Hubraum   "+ Integer.toString(Help.getHubraum()) + " ccm");
                 PcLeistung.setText("Leistung   "+ Integer.toString(Help.getLeistung()) + " PS");
                 PcTempo.setText("Tempo   "+ Integer.toString(Help.getTempo()) + " km/h");
                 PcNullHundert.setText("0-100km/h   "+ Integer.toString(Help.getNullHundert()) + " s") ;
                 //Setzt den Zustand auf 1.
                 zustand=1;
                }
               }
            else if (zustand==1)
               {
                /*-Zwischenzustand der das Ergebniss des letzten Stiches zeigt.
                  -Karte des Spielers und des Pcs sind aufgedeckt.
                */
                
                 //Fragt ab wer den letzten Stich gewonnen hat.
                 if (stichSieger==1)
                 {//Fügt die obersten Karten der Stapel an den Spielerstapel an.
                 Spieler.FuegeAn(Computer.getObersteKarte());
                 Computer.EntferneObersteKarte();
                 Spieler.FuegeAn(Spieler.getObersteKarte());
                 Spieler.EntferneObersteKarte();
                 //Setzt den Zustan auf 0.
                 zustand=0;
                 }
                 
                 else
                 {//Fügt die obersten Karten der Stapel an den Computerstapel an.
                 Computer.FuegeAn(Computer.getObersteKarte());
                 Computer.EntferneObersteKarte();
                 Computer.FuegeAn(Spieler.getObersteKarte());
                 Spieler.EntferneObersteKarte();
                 //Setzt den Zustand auf 2.
                 zustand=2;

                 }
                 
                 //Schreibt die Werte der obersten Karte des Spielers in die Gui.
                 Spielkarte Help1=Spieler.getObersteKarte();
                 Name.setText(Help1.getName());
                 WertH.setText(Integer.toString(Help1.getHubraum()) + " ccm");
                 WertL.setText(Integer.toString(Help1.getLeistung()) + " Ps");
                 WertT.setText(Integer.toString(Help1.getTempo()) + " km/h");
                 WertNH.setText(Integer.toString(Help1.getNullHundert()) + " s");
                 
                 //Schreibt Dummy Werte in die Gui um die Computer Spielkarte unsichtbar zu machen.
                 PcBild.setIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage("leer")));
                 PcName.setText("Name");
                 PcHubraum.setText("Hubraum");
                 PcLeistung.setText("Leistung");
                 PcTempo.setText("Tempo");
                 PcNullHundert.setText("0-100km/h");
                 
                 /*Setzt die Farben für alle Labels auf Black
                   um die Markierung des letzten Siegers zu überschreiben.
                 */
                 PcHubraum.setForeground(Color.BLACK);
                 PcLeistung.setForeground(Color.BLACK);
                 PcTempo.setForeground(Color.BLACK);
                 PcNullHundert.setForeground(Color.BLACK);
                 WertH.setForeground(Color.BLACK);
                 WertL.setForeground(Color.BLACK);
                 WertT.setForeground(Color.BLACK);
                 WertNH.setForeground(Color.BLACK);
               }
               /*-Computer ist am Zug
                 -Spielerkarte ist aufgedeckt
                 -Computerkarte ist unbekannt
               */
           else if (zustand==2)
                {
                 //Fragt die Entscheidung des Computers ab.
                 EntscheidungsAbfrageComputer();
                 //Schreibt die oberste Karte des Computers in die Gui.
                 Spielkarte Help2=Computer.getObersteKarte();
                 PcBild.setIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(Help2.getGrafikpfad())));
                 PcName.setText(Help2.getName());
                 PcHubraum.setText("Hubraum   "+ Integer.toString(Help2.getHubraum()) + " ccm");
                 PcLeistung.setText("Leistung   "+ Integer.toString(Help2.getLeistung()) + " PS");
                 PcTempo.setText("Tempo   "+ Integer.toString(Help2.getTempo()) + " km/h");
                 PcNullHundert.setText("0-100km/h   "+ Integer.toString(Help2.getNullHundert()) + " s") ;
                 //Setzt den Zustand auf 1.
                 zustand=1;

               }

            //Sorgt dafür das nach dem Zustandswechsel keine Checkbox mehr angewählt ist
            Hubraum.setSelected(false);
            Leistung.setSelected(false);
            Tempo.setSelected(false);
            NullHundert.setSelected(false);

     }





    /**<table>
     <tr>
     <td valign=top>[b]vorher[/b]</td>
     <td valign=top>
     Eine Gui wurde erzeugt.

     </td>
     </tr>
     <tr>
     <td valign=top>[b]nachher[/b]</td>
     <td valign=top>

     Die Variable stichSieger ist mir dem Sieger belegt.
     Die gewählte Rubrik ist bei der Gewinnerkarte rot
     eingefärbt.
     </td>
     </tr>
     </table>
   */
  public boolean EntscheidungsAbfrageSpieler()
  
  
  {
        boolean Return=false;
        //Fragt ab ob das Attribut Hubraum gewählt ist.
        if (Hubraum.isSelected())
          { Return=true;
            if (Computer.getObersteKarte().getHubraum()>Spieler.getObersteKarte().getHubraum())
              { stichSieger=2;
                PcHubraum.setForeground(Color.RED);
              }
              else
              { stichSieger=1;
                WertH.setForeground(Color.RED);
              }
           }
           
         //Fragt ab ob das Attribut Leistung gewählt ist.
         else if (Leistung.isSelected())
           {Return=true;

           if (Computer.getObersteKarte().getLeistung()>Spieler.getObersteKarte().getLeistung())
            {stichSieger=2;
             PcLeistung.setForeground(Color.RED);
            }
            else
            {stichSieger=1;
             WertL.setForeground(Color.RED);
            }
          }
         //Fragt ab ob das Attribut Tempo gewählt ist.
         else if (Tempo.isSelected())
           {Return=true;
            if (Computer.getObersteKarte().getTempo()>Spieler.getObersteKarte().getTempo())
            {stichSieger=2;
             PcTempo.setForeground(Color.RED);
            }
            else
            {stichSieger=1;
             WertT.setForeground(Color.RED);
            }
           }
        //Fragt ab ob das Attribut NullHundert gewählt ist.
        else if (NullHundert.isSelected())
         {if (Computer.getObersteKarte().getNullHundert()<Spieler.getObersteKarte().getNullHundert())
          {stichSieger=2;
           PcNullHundert.setForeground(Color.RED);
          }
          else
          {stichSieger=1;
           WertNH.setForeground(Color.RED);
          }
         }


      return Return;
  }

  /**<table>
     <tr>
     <td valign=top>[b]vorher[/b]</td>
     <td valign=top>
     Eine Gui wurde erzeugt.

     </td>
     </tr>
     <tr>
     <td valign=top>[b]nachher[/b]</td>
     <td valign=top>

     Die Variable stichSieger ist mir dem Sieger belegt.
     Die gewählte Rubrik ist bei der Gewinnerkarte rot
     eingefärbt.
     </td>
     </tr>
     </table>
   */
  public void EntscheidungsAbfrageComputer()
  {
    int help=Autoq.computerKI(Computer.getObersteKarte());
    if (help==1)

      {
        if (Computer.getObersteKarte().getHubraum()<Spieler.getObersteKarte().getHubraum())
        { stichSieger=1;
          WertH.setForeground(Color.RED);
        }
        else
        { stichSieger=2;
          PcHubraum.setForeground(Color.RED);
        }
       }
    else if (help==2)

        {
         if (Computer.getObersteKarte().getLeistung()<Spieler.getObersteKarte().getLeistung())
         { stichSieger=1;
           WertL.setForeground(Color.RED);
         }
         else
         { stichSieger=2;
           PcLeistung.setForeground(Color.RED);

         }
        }
    else if (help==3)

        {
         if (Computer.getObersteKarte().getTempo()<Spieler.getObersteKarte().getTempo())
          {stichSieger=1;
           WertT.setForeground(Color.RED);
          }
         else
          {stichSieger=2;
           PcTempo.setForeground(Color.RED);
          }
         }
    else if (help==4)
    
         {
          if (Computer.getObersteKarte().getNullHundert()>Spieler.getObersteKarte().getNullHundert())
          {stichSieger=1;
           WertNH.setForeground(Color.RED);
          }
          else
          {stichSieger=2;
           PcNullHundert.setForeground(Color.RED);
          }
         }
  }

   // Ende Ereignisprozeduren
  
  
  public static void main(String[] args)
  { //Die Gui wird erstellt.
    Gui myGui = new Gui("Gui");
    //Die Spielkarte werden erstellt.
    
    Spielkarte A1 = new Spielkarte("Ferrari 250 Europa GT ", 2963, 220, 240, 6,"250europagt");
    Spielkarte B1 = new Spielkarte("Ferrari 250 TDF LWB", 2998, 240, 250, 8,"250tdflwb");
    Spielkarte C1 = new Spielkarte("Ferrari 250 GT SWB", 2953, 280, 230, 4,"250gtoswb");
    Spielkarte D1 = new Spielkarte("Ferrari 250 GTO", 2953, 280, 250, 6,"250gto");
    Spielkarte A2 = new Spielkarte("Ferrari 286 Spider", 2862, 260, 260, 5,"286spider");
    Spielkarte B2 = new Spielkarte("Ferrari 500 TR", 1984, 180, 225, 6,"500tr");
    Spielkarte C2 = new Spielkarte("Ferrari 575 GTC", 5997, 605, 335, 4,"575gtc");
    Spielkarte D2 = new Spielkarte("Ferrari 360 Challenge", 3586, 400, 295, 4,"360challenge");
    Spielkarte A3 = new Spielkarte("Ferrari 612 Scaglietti", 5748, 540, 320, 4,"612scaglietti");
    Spielkarte B3 = new Spielkarte("Ferrari 412", 4943, 340, 250, 7,"412");
    Spielkarte C3 = new Spielkarte("Ferrari 365 GTC/4", 4390, 320, 250, 7,"365gtc4");
    Spielkarte D3 = new Spielkarte("Ferrari 166 Inter Coupe Touring", 1995, 110, 190, 10,"166intercoupe");
    Spielkarte A4 = new Spielkarte("Ferrari 125/66", 1496, 180, 220, 7,"12566");
    Spielkarte B4 = new Spielkarte("Ferrari 156 F1", 1477, 190, 240, 6,"156F1");
    Spielkarte C4 = new Spielkarte("Ferrari 641/2", 3498, 700, 330, 3,"6412");
    Spielkarte D4 = new Spielkarte("Ferrari F2004", 3000, 905, 360, 3,"F2004");
    Spielkarte A5 = new Spielkarte("Ferrari rossa Pininfarina", 5474, 486, 320, 4,"rossapininfarina");
    Spielkarte B5 = new Spielkarte("Ferrari mythos Pininfarina", 4942, 390, 295, 5,",mythospininfarina");
    Spielkarte C5 = new Spielkarte("Ferrari 360 Spider", 6586, 400, 293, 5,"360spider");
    Spielkarte D5 = new Spielkarte("Ferrari 365 P Speziale", 4390, 380, 245, 7,"365pspeziale");
    Spielkarte A6 = new Spielkarte("Ferrari F355 Spider", 3496, 380, 295, 5,"f355spider");
    Spielkarte B6 = new Spielkarte("Ferrari F40", 2936, 477, 324, 5,"f40");
    Spielkarte C6 = new Spielkarte("Ferrari Enzo Ferrari", 5998, 660, 350, 4,"enzoferrari");
    Spielkarte D6 = new Spielkarte("Ferrari F50", 4700, 520, 325, 4,"f50");
    Spielkarte A7 = new Spielkarte("Ferrari Dino 206 SP Berlinetta", 1986, 200, 250, 6,"dino206sp");
    Spielkarte B7 = new Spielkarte("Ferrari Dino 246 GT", 2418, 195, 240, 7,"dino246gt");
    Spielkarte C7 = new Spielkarte("Ferrari Dino 246 GTS", 2418, 195, 238, 7,"dino246gts");
    Spielkarte D7 = new Spielkarte("Ferrari Dino 308 GT4", 2926, 255, 240, 6,"dino308gt4");
    Spielkarte A8 = new Spielkarte("Ferrari GTO", 2855, 400, 306, 5,"gto");
    Spielkarte B8 = new Spielkarte("Ferrari 575 Handling GTC",5748, 515, 325, 4,"leer");
    Spielkarte C8 = new Spielkarte("Ferrari 456 M GT", 2474, 442, 302, 5,"leer");
    Spielkarte D8 = new Spielkarte("Ferrari Challenge Stradale",3586,425, 300, 4,"challengestradale");

    //Die Spielkarten werden dem Stapel zugefügt
    myGui.Stapel.setKarte(A1,0);
    myGui.Stapel.setKarte(B1,1);
    myGui.Stapel.setKarte(C1,2);
    myGui.Stapel.setKarte(D1,3);
    myGui.Stapel.setKarte(A2,4);
    myGui.Stapel.setKarte(B2,5);
    myGui.Stapel.setKarte(C2,6);
    myGui.Stapel.setKarte(D2,7);
    myGui.Stapel.setKarte(A3,8);
    myGui.Stapel.setKarte(B3,9);
    myGui.Stapel.setKarte(C3,10);
    myGui.Stapel.setKarte(D3,11);
    myGui.Stapel.setKarte(A4,12);
    myGui.Stapel.setKarte(B4,13);
    myGui.Stapel.setKarte(C4,14);
    myGui.Stapel.setKarte(D4,15);
    myGui.Stapel.setKarte(A5,16);
    myGui.Stapel.setKarte(B5,17);
    myGui.Stapel.setKarte(C5,18);
    myGui.Stapel.setKarte(D5,19);
    myGui.Stapel.setKarte(A6,20);
    myGui.Stapel.setKarte(B6,21);
    myGui.Stapel.setKarte(C6,22);
    myGui.Stapel.setKarte(D6,23);
    myGui.Stapel.setKarte(A7,24);
    myGui.Stapel.setKarte(B7,25);
    myGui.Stapel.setKarte(C7,26);
    myGui.Stapel.setKarte(D7,27);
    myGui.Stapel.setKarte(A8,28);
    myGui.Stapel.setKarte(B8,29);
    myGui.Stapel.setKarte(C8,30);
    myGui.Stapel.setKarte(D8,31);


    // Der Stapel wird gemischt
    myGui.Stapel.mischen();
     //Die ersten 16 Karten werden dem Spieler ausgeteilt, d.h seinem Stapel zugefügt.
    for (int i=0; i<=15; i++)
     { Spielkarte Help=myGui.Stapel.getKarte(i);
       myGui.Spieler.FuegeAn(Help);
     }
    // Die zweiten 16 Karten werden dem Computer ausgeteilt, d.h seinem Stapel zugefügt.
    for (int i=16; i<=31; i++)
     { Spielkarte Help=myGui.Stapel.getKarte(i);
       myGui.Computer.FuegeAn(Help);
     }
     //Die Daten der ersten Spielkarte des Spielers werden in die Gui eingelesen.
     Spielkarte Help=myGui.Spieler.getObersteKarte();
     myGui.Bild.setIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage("gto.jpg")));
     myGui.Name.setText(Help.getName());
     myGui.WertH.setText(Integer.toString(Help.getHubraum()) + " ccm");
     myGui.WertL.setText(Integer.toString(Help.getLeistung()) + " Ps");
     myGui.WertT.setText(Integer.toString(Help.getTempo()) + " km/h");
     myGui.WertNH.setText(Integer.toString(Help.getNullHundert()) + " s");
     //myGui.PcTempo.setText(Integer.toString(myGui.Autoq.computerKI(Help)));
  }
 }
 

SamHotte

Top Contributor
Hmm. Ich nehme an, du meinst mit dem neuzeichnen Zeile 637 bis 643, richtig? Dann scheint mir das Problem daran zu liegen, dass du zwar diverse Dinge deiner GUI zuweist, aber diese nicht mehr neu zeichnest; statt dessen wird sofort das Programm beendet.
Auch ist der Sinn von Zeile 637 nicht klar - du benutzt die Variable "Help" danach nie wieder ...
 
G

Guest

Gast
Also Z637 ist wirklich überflüssig, entstammt noch aus den ersten Entwürfen des Programmes.

Was meinst du mit neu zeichnen? Muss ich wenn ich Elemente der Gui verändert habe die komplette Gui neu zeichnen? Wenn ja wie genau macht man das? gibt es da eine einfache Anweisung für? Der Text der Labels wird ja auch geändert, braucht man da bei einem icon image eine zusätzliche anweisung?
 

SamHotte

Top Contributor
Die komplette GUI brauchst du nicht neu zu zeichnen, aber die veränderte Komponente. Ausprobierenswert sind immer die Methoden revalidate() bzw. repaint() - je nachdem, ob vorhanden. Manchmal gibt es auch nur validate(), aber eines der drei muss man aufrufen, wenn man den Inhalt einer bereits gezeichneten Komponente verändert.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
7 AWT problem: KeyListener/ test im Label umändern AWT, Swing, JavaFX & SWT 4
S VAADIN: Problem mit Label AWT, Swing, JavaFX & SWT 18
DasDogma AWT Problem bei Wertzuweisung für Label AWT, Swing, JavaFX & SWT 3
M Schwieriges Label - Font - Problem "Dynamisches Label&a AWT, Swing, JavaFX & SWT 7
Juelin Problem mit TextField.requestFocus(); AWT, Swing, JavaFX & SWT 17
Juelin Problem beim Laden Controller AWT, Swing, JavaFX & SWT 2
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
S Layout - Problem AWT, Swing, JavaFX & SWT 1
Tassos JavaFX/Problem mit der Maussteuerung in Stackpane AWT, Swing, JavaFX & SWT 7
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
A JavaFX Controller Problem AWT, Swing, JavaFX & SWT 1
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
Umb3rus JavaFX Problem mit PropertyValueFactory: can not read from unreadable property AWT, Swing, JavaFX & SWT 1
T Problem mit paintComponent() AWT, Swing, JavaFX & SWT 17
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
G Instance OF Problem AWT, Swing, JavaFX & SWT 9
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
J JavaFX Löschen im Tabelview macht Problem AWT, Swing, JavaFX & SWT 15
JavaTalksToMe JavaFx ExekutorService Problem AWT, Swing, JavaFX & SWT 2
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
B Problem mit JavaFX AWT, Swing, JavaFX & SWT 5
J css Problem AWT, Swing, JavaFX & SWT 5
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
A Swing Filter-Problem AWT, Swing, JavaFX & SWT 1
temi JavaFX Problem mit IntelliJ und JavaFx 11 unter XUbuntu AWT, Swing, JavaFX & SWT 3
L Java FX Problem mit Ubuntu 18 und JavaFx AWT, Swing, JavaFX & SWT 27
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
kodela Swing Problem mit Warten-Dialog AWT, Swing, JavaFX & SWT 16
B JavaFx Scene Builder Problem AWT, Swing, JavaFX & SWT 2
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
T DataBinding Problem AWT, Swing, JavaFX & SWT 5
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 15
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 0
D Swing SwingUtils / Thread Problem AWT, Swing, JavaFX & SWT 3
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
T Swing Problem mit Datum und FormattedTextField AWT, Swing, JavaFX & SWT 2
S AWT Java print dialog Problem AWT, Swing, JavaFX & SWT 0
olfibits JavaFX Problem mit HTMLEditor AWT, Swing, JavaFX & SWT 0
W SWT hover-background-problem with first column in TreeViewer AWT, Swing, JavaFX & SWT 0
M Problem mit Add JScrollPane AWT, Swing, JavaFX & SWT 25
Mario1409 Swing JTextArea scroll Problem AWT, Swing, JavaFX & SWT 0
N Swing Problem mit loop AWT, Swing, JavaFX & SWT 2
S Swing Problem mit Button und ActionListener AWT, Swing, JavaFX & SWT 5
S Swing & Clean und build Problem AWT, Swing, JavaFX & SWT 12
S JLabel setText() Problem AWT, Swing, JavaFX & SWT 6
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
G Swing Splitpane Problem AWT, Swing, JavaFX & SWT 1
F Problem mit der FXML Rectangle Shape AWT, Swing, JavaFX & SWT 2
N JavaFX Stranges Problem mit der Autoscroll-Eigenschaft von Textareas AWT, Swing, JavaFX & SWT 0
E Java FX FXML Problem mit html Scriptausführung AWT, Swing, JavaFX & SWT 2
J JavaFX Intersect Problem mit Shapes AWT, Swing, JavaFX & SWT 10
R JavaFX MediaPlayer AVI-Problem AWT, Swing, JavaFX & SWT 1
M Swing Problem mit ListCellRenderer AWT, Swing, JavaFX & SWT 7
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
F GUI Auflösung ändern - Koordianten und Proportions Problem AWT, Swing, JavaFX & SWT 21
J Problem mit Button darstellung AWT, Swing, JavaFX & SWT 23
M Problem mit Layoutmanagern... Hilfe wäre sehr nett. AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Problem mit Variablen AWT, Swing, JavaFX & SWT 4
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
M Swing AttributiveCellTableModel addRow() Problem AWT, Swing, JavaFX & SWT 1
J Swing Problem mit Graphics Methode AWT, Swing, JavaFX & SWT 4
N JavaFX Problem mit table multiple selection AWT, Swing, JavaFX & SWT 5
K CheckBox Problem AWT, Swing, JavaFX & SWT 5
Grevak DisplayMode Problem seit Windows 10 AWT, Swing, JavaFX & SWT 2
S Swing Eigene JComboBox Problem! AWT, Swing, JavaFX & SWT 1
B Swing Problem mit Bildpfad AWT, Swing, JavaFX & SWT 4
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
V Graphics g - drawOval problem mit background AWT, Swing, JavaFX & SWT 1
C AWT Problem mit Protokol Fenster AWT, Swing, JavaFX & SWT 0
M Swing pack() Problem mit Taskleiste AWT, Swing, JavaFX & SWT 4
N Swing Choice- Problem! AWT, Swing, JavaFX & SWT 8
Q "AWT-EventQueue-0" Exception Problem AWT, Swing, JavaFX & SWT 4
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
A Problem: repaint() - Schleife AWT, Swing, JavaFX & SWT 3
J Anfänger GUI Problem bei der Ausführung eines sehr einfachen Programms AWT, Swing, JavaFX & SWT 2
P AWT Problem mit Platzierung (GridBagLayout) AWT, Swing, JavaFX & SWT 2
N Swing JTree Problem beim erstellen der Knoten AWT, Swing, JavaFX & SWT 0
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
A Mini-Menu-Schriften. Ein Problem bei hohen DPI Zahlen AWT, Swing, JavaFX & SWT 2
Z Canvas in Frame einfügen. Problem mit 4-Gewinnt AWT, Swing, JavaFX & SWT 1
C Thread-/ Simulations- Problem AWT, Swing, JavaFX & SWT 18
G Swing Setvisible problem AWT, Swing, JavaFX & SWT 1
J JTabbedPane: close Button Problem AWT, Swing, JavaFX & SWT 2
Tom299 JavaFX -> fxmlLoader -> getResourceAsStream Problem AWT, Swing, JavaFX & SWT 1
T Problem: ComboBox und addItem AWT, Swing, JavaFX & SWT 5
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
T LayoutManager LookAndFeel-Problem AWT, Swing, JavaFX & SWT 4
F Problem mit Implementierung von Kollisionsabfrage AWT, Swing, JavaFX & SWT 5
vodkaz (javafx) Image Problem AWT, Swing, JavaFX & SWT 2
T Problem beim Zeichnen von Rechteck AWT, Swing, JavaFX & SWT 3
B JavaFX Problem bei Kamera / Group, gesamte Scene bewegt sich mit AWT, Swing, JavaFX & SWT 0

Ähnliche Java Themen


Oben