CardLayout funktioniert fehlerhaft

pmSave

Mitglied
Hallo zusammen,
ich habe ein Spiel(GUI) programmiert welches 3 "Screens"(Startbild, Spielbild und Optionen), vom CardLayout, verwaltet besitzt. Mein Problem liegt darin, dass die verschiedenen Bildschirme nur mit den Methoden ".next()", ".first()" und ".previsou" richtig funktionieren und die Methode ".show(container, string)" immer wieder dazu führt, dass die komischsten Sachen passieren.
Zum Start des Programms wird einmal die ".show()" Methode korrekt ausgeführt, jedoch funktioniert sie im weiteren nur so, dass zum Teil Buttons fehlen oder sogar auf einem falschen Panel gezeichnet werde. Warum das so ist, ist mir schleierhaft.
PS: mein Programm arbeitet in verschiedenen Klassen und einer Runnable, also einem Thread für das Spiel.

Ich hoffe jemand hat eine Idee. Falls ihr Quellcode braucht müsst ihr es nur schreiben.
 

pmSave

Mitglied
Ich denke nicht das die Strings nicht passen, ich habe extra feste erstellt aber hier:

Code:
...
public class Game extends JFrame {
    
    private final static String STARTBILD = "startbildschirm";
    private final static String SPIELBILD = "spielbildschirm";
    private CardLayout cl = new CardLayout();
    private JPanel contentPane; //Panel des startbilds
    private JPanel gamePane = new JPanel(); //Panel des spielbilds
...
   
public static void main(String[] args) {
   EventQueue.invokeLater(new Runnable() {
       public void run() {
       try {
           Game frame = new Game();
           frame.setVisible(true);
           frame.setResizable(false);
       } catch (Exception e) {
           e.printStackTrace();
       }
       }
   });
    }

...
    public Game() {

...
    //Karten
   cardsPane.setLayout(cl);
   
   cardsPane.add(contentPane, STARTBILD);
   cardsPane.add(gamePane, SPIELBILD);
   cl.show(cardsPane, STARTBILD);
    }

...
    JButton btnStart = new JButton("START");
   btnStart.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
       cl.next(cardsPane);          /*wenn man hier die Methode show einsetzt entsteht das 
                                                *Problem: cl.show(cardsPane, STARTBILD); */
       starteRunde();
       btnBeenden.requestFocus();
       
       }
   });

...
    btnBeenden.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
       beendeRunde();
       cl.next(cardsPane);           /*wenn man hier die Methode show einsetzt entsteht das 
                                                *Problem: cl.show(cardsPane, STARTBILD); */
       }
   });
}

So im Bsp. habe ich jetzt nur die beiden START- und SPIELBILDSCHIRME verwendet um es einfacher zuhalten. Die Methode ".next(cardsPane)" funktioniert einwandfrei und es wird alles direkt und richtig gezeichnet.
Wenn man die Methoden jedoch durch ".show" tauscht, was erforderlich ist, da ich nachher ja 3 Bildschirme zeigen möchte, entstehen die faszinierendsten Dinge.
 

Robat

Top Contributor
Also in deinem geposteten Code kann ich kein Fehler erkennen und kann den Fehler auch nicht reproduzieren (hab es gerade mal an einem KSKB getestet). Ich denke, dass es am Besten wäre, wenn du mal den gesamten Code postest.

BTW: Der erste Aufruf von cl.show(..) ist nicht nötig. Es wird immer der Container angezeigt, welcher zuerst hinzugefügt wird.
 

pmSave

Mitglied
Ok hier der Code der Klasse Game:
Code:
package gamePackage;

import java.awt.CardLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.border.LineBorder;
import javax.swing.JLabel;
import javax.swing.JButton;

public class Game extends JFrame {

    private final static String STARTBILD = "startbildschirm";
    private final static String SPIELBILD = "spielbildschirm";
    private JPanel contentPane;
    private JPanel gamePane = new JPanel();
    private JPanel optionenPane = new JPanel();
    private CardLayout cl = new CardLayout();
    private JPanel cardsPane = new JPanel();
    private static int score = 0;
    private JMyPanel panelZeichenflaeche;
    private Thread t;
    private JButton btnBeenden;
    private static JLabel lblScore;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
   EventQueue.invokeLater(new Runnable() {
       public void run() {
       try {
           Game frame = new Game();
           frame.setVisible(true);
           frame.setResizable(false);
       } catch (Exception e) {
           e.printStackTrace();
       }
       }
   });
    }

    /**
     * Create the frame.
     */
    public Game() {
   setTitle("Ballspin");
   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   setBounds(Toolkit.getDefaultToolkit().getScreenSize().width/2-350, Toolkit.getDefaultToolkit().getScreenSize().height/2-300, 700, 400);
  
   contentPane = new JPanel();
   contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
   setContentPane(cardsPane);
   contentPane.setLayout(null);
   contentPane.setBackground(Color.BLACK);
   //Karten
   cardsPane.setLayout(cl);
  
   cardsPane.add(contentPane, STARTBILD);
   cardsPane.add(gamePane, SPIELBILD);
   cl.show(cardsPane, STARTBILD);
  
  
  
   JLabel lblTitle = new JLabel("Ballspin");
   lblTitle.setForeground(Color.WHITE);
   lblTitle.setFont(new Font("Impact", Font.BOLD, 50));
   lblTitle.setBounds(242, 59, 224, 44);
   contentPane.add(lblTitle);
  
   JButton btnStart = new JButton("START");
   btnStart.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
       cl.show(cardsPane, SPIELBILD);
       starteRunde();
       btnBeenden.requestFocus();
      
       }
   });
   btnStart.setFont(new Font("Impact", Font.BOLD, 30));
   btnStart.setBounds(210, 160, 256, 54);
   contentPane.add(btnStart);
  
  
   JButton btnOptionen = new JButton("Einstellungen");
   btnOptionen.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
       //hier später cardlayout verwei auf das optionen panel
       }
   });
   btnOptionen.setFont(new Font("Impact", Font.BOLD, 25));
   btnOptionen.setBounds(242, 237, 200, 40);
   contentPane.add(btnOptionen);
  
   /*
   // hier beginnt der Einstellungen Bereich  (Dieser Bereich ist noch unfertig
   optionenPane.setVisible(true);
   optionenPane.setBorder(new EmptyBorder(5, 5, 5, 5));
   optionenPane.setLayout(null);
   optionenPane.setBackground(Color.BLACK);
  
   //setContentPane(optionenPane); wird für den Aufbau mit windowbuilder gebraucht und nach fertigstellung gelöscht
   */
  
   JLabel lblEinstellungen = new JLabel("Einstellungen");
   lblEinstellungen.setBorder(new LineBorder(Color.WHITE, 3));
   lblEinstellungen.setForeground(Color.WHITE);
   lblEinstellungen.setFont(new Font("Impact", Font.BOLD, 50));
   lblEinstellungen.setBounds(180, 32, 326, 62);
   optionenPane.add(lblEinstellungen);
  
  
  
   // hier beginnt der Gamebereich
   gamePane.setVisible(true);
   gamePane.setBorder(new EmptyBorder(5, 5, 5, 5));
   gamePane.setLayout(null);
   gamePane.setBackground(Color.BLACK);
  
   lblScore = new JLabel("Score: " + score);
   lblScore.setFont(new Font("Segoe UI Black", Font.BOLD, 40));
   lblScore.setForeground(Color.WHITE);
   lblScore.setBounds(260, 11, 247, 41);
   gamePane.add(lblScore);
  
   btnBeenden = new JButton("Beenden");
   btnBeenden.addKeyListener(new KeyAdapter() {
       @Override
       public void keyPressed(KeyEvent e) {
       if(e.getKeyCode() == KeyEvent.VK_UP) {
           if(panelZeichenflaeche.getRY()>17) {
           panelZeichenflaeche.setRY(panelZeichenflaeche.getRY()-30);
           repaint();
               if(panelZeichenflaeche.getRY()<17) {
                   panelZeichenflaeche.setRY(15);
               }
           }
       } else {
           if(e.getKeyCode() == KeyEvent.VK_DOWN) {
           if(panelZeichenflaeche.getRY()<getHeight()-145) {
               panelZeichenflaeche.setRY(panelZeichenflaeche.getRY()+30);
               repaint();
               if(panelZeichenflaeche.getRY()>getHeight()-145) {
               panelZeichenflaeche.setRY(getHeight()-144);
               }
           }
           }
       }
       }
   });
   btnBeenden.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
       beendeRunde();
       cl.show(cardsPane, STARTBILD);
       }
   });
   btnBeenden.setBounds(590, 11, 90, 41);
   gamePane.add(btnBeenden);
  
  

   panelZeichenflaeche = new JMyPanel();
   panelZeichenflaeche.setBounds(0, 55, getWidth()-5, getHeight()-83);
   gamePane.add(panelZeichenflaeche);
  
    }
  
    public void starteRunde() {
   if(t == null) {
       t = new Thread(panelZeichenflaeche);
   }
   if(!t.isAlive()) {
       t.start();
   }
   panelZeichenflaeche.setSpielfeld();
   score = 0;
   lblScore.setText("Score: " + score);
   panelZeichenflaeche.setPunkte(0);
   panelZeichenflaeche.setVor(false);
    }
  
    public void beendeRunde() {
   t.interrupt();
   t = new Thread(panelZeichenflaeche);
    }
  
    public static void JScoreText(String sc) {
   lblScore.setText(sc);
    }
    public static String getJScoreText() {
   return lblScore.getText();
    }
    public static void JScorePlus(String sc) {
   lblScore.setText(sc);
   score++;
    }
    public static void JScoreMinus(String sc) {
   lblScore.setText(sc);
   score--;
    }
    public static int getJScore() {
   return score;
    }
}

Hier der Code der Klasse JMyPanel:
Code:
package gamePackage;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.geom.RoundRectangle2D;

import javax.swing.JPanel;
import javax.swing.border.LineBorder;

public class JMyPanel extends JPanel implements Runnable{
    private Balken rechteckR;
    private Balken rechteckL;
    private Ball ball;
    private boolean vor = false;
    private boolean oben = true;
    private int zufall =  1;
    private int zaehler = 0;   //zähler zum festlegen, ob bei Rundenstart gewartet wird
    private int punkte = 0;     //zähler zur interaktion mit der klasse game, um den richtigen punktestand anzugeben
    //private boolean lastWin; //variable zum überprüfen damit man nicht 2 mal hintereinander gewinnt
    private boolean win;        //variable zum festlegen, ob der linke Balken trifft oder nicht
    private int posBl = 0;  //gemeint ist die richtung des linken balkens wenn die variable win = true ist
    private int xPos = 0; //variable um die stelle des linken balkens zum zeitpunkt wo auf win entschieden wird zu setzten
    private String loseG = "  LOSE", winG = "   WIN"; //text der bei einem win/lose ausgegeben wird
    private int endeZaehler = 0; //zaehler, der mitzählt um die anzeige am ende eines spiels (win/lose) zu stoppen
  
    public JMyPanel() {
   setBackground(Color.BLACK);
   setBorder(new LineBorder(Color.WHITE, 15));
   rechteckR = new Balken(650, 130, 10, 45, 10, 5);
   rechteckL = new Balken(35, 130, 10, 45, 10, 5);
   ball = new Ball(335, 137, 20, 20);
  
    }
  
  
    public void paintComponent(Graphics g) {
   super.paintComponent(g);
   g.setColor(Color.WHITE);
  
   g.fillOval((int)ball.getX(), (int)ball.getY(), (int)ball.getWidth(), (int)ball.getHeight());
  
   g.fillRoundRect((int)rechteckR.getX(), (int)rechteckR.getY(), (int)rechteckR.getWidth(), (int)rechteckR.getHeight()
                      , (int)rechteckR.getArcWidth(), (int)rechteckR.getArcHeight());
   g.fillRoundRect((int)rechteckL.getX(), (int)rechteckL.getY(), (int)rechteckL.getWidth(), (int)rechteckL.getHeight()
                  , (int)rechteckL.getArcWidth(), (int)rechteckL.getArcHeight());
    }
  
    //Methoden für den Balken
    public void setRY(int y) {
   rechteckR.setY(y);
    }
    public int getRY() {
   return (int)rechteckR.getY();
    }
  
  
    public void run() {
   while (true) {
       synchronized (this) {
         if(punkte == 5 || punkte == -5) {
       if(endeZaehler == 750) {
           punkte = 0;
           Game.JScoreText("Score: " + punkte);
           repaint();
           setSpielfeld();
           punkte = 0;
       } else {
           endeZaehler++;
       }
        
       if(punkte == 5 && Game.getJScoreText() == winG) {
           Game.JScoreText("");
       } else if(punkte == 5 && Game.getJScoreText() != winG) {
           Game.JScoreText(winG);
       }
       if (punkte == -5 && Game.getJScoreText() == loseG) {
           Game.JScoreText("");
       } else if(punkte == -5 && Game.getJScoreText() != loseG) {
           Game.JScoreText(loseG);
       }
         } else {
       if(zaehler == 0) {
           try {
               Thread.sleep(500);
               zaehler = 1;
           } catch(InterruptedException e) {
           break;
           }
       }
       if(ball.getX()>getWidth()-35) {  //rechter Rand
           setSpielfeld();
           punkte--;
           Game.JScoreMinus("Score: " + punkte);
           vor = false;
       } else if(ball.getX()<=13) { //linker Rand
           setSpielfeld();
           punkte++;
           Game.JScorePlus("Score: " + punkte);
           } else if(ball.getY()<20){ //oberer Rand
           oben = false;
           getNeuZufall();
           } else if(ball.getY()>=getHeight()-40) {  //unterer Rand
           oben = true;
           getNeuZufall();
           }
          
       if(ball.getX() >= 330 && ball.getX() <= 332) { //benötigt um über einen win und das verhalten des lBalken
           winPruefen();
       }
      
           //Zusammenprall mit rechten Balken
           for(int i = -15; i<45; i++){
           switch (i) {
           case -15:
           case 44:
           default: if(ball.getY() == rechteckR.getY()+i && (ball.getX()+21) == rechteckR.getX()) {
                        vor = false;
                    }
                    break;
           }
           }
          
           //Zusammenprall mit linken Balken
           if(ball.getX()<=42 && ball.getX()>=40) {
           if(win == false) {
               vor = true;
           }
           }
          
         //Bewegung des Balls
          
           if(vor && oben) {
           ball.setX((int)ball.getX()+3);
           ball.setY((int)ball.getY()-zufall);
           } else if(!oben && vor){
           ball.setX((int)ball.getX()+3);
           ball.setY((int)ball.getY()+zufall);
               } else if(!vor && oben) {
                   ball.setX((int)ball.getX()-3);
                   ball.setY((int)ball.getY()-zufall);
               } else if(!vor && !oben) {
                   ball.setX((int)ball.getX()-3);
               ball.setY((int)ball.getY()+zufall);
               }
          
          
           //linker Balken Bewegung
           if(rechteckL.getY() != ball.getY()) {
           if (ball.getX() <= 100 && win) {
               if(ball.getX() <= 100 && ball.getX() >= 98) {
                   xPos = (int)rechteckL.getY();
               }
               if(ball.getX() < 98) {
                   rechteckL.setY(xPos);
               }
              
               //wenn kein win
           } else {
               rechteckL.setY((int)ball.getY()-10);
           }
           if(rechteckL.getY()<16) {
               rechteckL.setY(15);
           } else if(rechteckL.getY()>getHeight()-60) {
               rechteckL.setY((int)getHeight()-61);
           }
           }
         }
          
           this.repaint();
       try{
           Thread.sleep(7);
       } catch (InterruptedException e) {
           break;
       }
       }
   }
    }
  
    public void setSpielfeld() {
   rechteckR.setRoundRect(650, 130, 10, 45, 10, 5);
   rechteckL.setRoundRect(35, 130, 10, 45, 10, 5);
   ball.setBall(335, 137, 20, 20);
   zaehler = 0;
    }
    public void getNeuZufall() {
   int temp = zufall;
   this.zufall = (int)(Math.random()*3);
   if(this.zufall == temp) {
       getNeuZufall();
   }
    }
    public int getPunkte() {
   return this.punkte;
    }
    public void setPunkte(int p) {
   this.punkte = p;
    }
  
    public void setVor(boolean b) {
   this.vor = b;
    }
  
    public void winPruefen() {
   if((int)(Math.random()*60) < 45 && zaehler > 1 && zufall >= 2) {
       win = true; //runde gewonnen
   } else {
       win = false;   //spiel geht weiter
   }
   if(zaehler == 1) {
       zaehler = 2;
   }
    }
}

Damit müsste es gehen (zur info es gibt noch die Klassen "Balken" und "Ball"). Ist bisher mein größtes Projekt.
Falls du noch weiter informationen brauchst, bitte einfach fragen.
Sicherlich ist nicht alles optimal gelöst, da ich bei dem Projekt blöderweise noch ohne viel Plan "einfach drauf los programmiert habe".
 

pmSave

Mitglied
lächerlich aber es funktioniert. ich habe weiter daran gearbeitet und mittlerweile klappt es ohne die show Methode. Also: ich habe nur die Methoden .next() , .first() und .last() benutzt um mich bei 3 Bildschirmen durchzuarbeiten. Das funktioniert jetzt ohne Probleme und die jeweiligen Panels werden ohne Fehler gezeichnet.
Dennoch frage ich mich wie man gezielt auf ein Panel zugreifen kann, wenn ich 4 oder mehr Panels im Container des CardLayout hätte. Somit wäre es dennoch schön wenn wir (bzw. einer) eine Lösung zu dem Problem mit der Methode .show() finden könnte, oder mir zumindest sagen kann warum das nicht funktioniert, obwohl es eigentlich sollte.
DAS EIGENTLICHE PROBLEM IST SOMIT TROTZDEM NICHT GELÖST
Vielen Dank aber dennoch an alle die sich mit meinem Problem auseinandersetzten!

ps: als idee vielleicht: könnte es sein das die eclipse "run-funktion" einfach einen fehler hat und mit dem cardlayout nicht klar kommt? wahrscheinlicher ist es das der fehler bei mir liegt, aber man kann ja nie wissen..
 

Robat

Top Contributor
Die JPanels solltest du erst zum CardLayout hinzufügen, wenn du all ihre Komponenten fertig hinzugefügt hast. (hat bei mir das Problem gelöst)

Noch ein wenig Offtopic:
Java:
setBounds(Toolkit.getDefaultToolkit().getScreenSize().width/2-350, Toolkit.getDefaultToolkit().getScreenSize().height/2-300, 700, 400)

// würde ich ersetzen durch
setSize(700,400);
setLocationRelativeTo(null);

Einzelne Komponenten musst du nicht (und solltest du nicht) explizit mit setVisible(true) sichtbar machen.
 

Robat

Top Contributor
Du solltest dir auch noch mal über die Struktur Gedanken machen. Die statischen Methoden / Felder sind nicht schön und auch nicht zwingend notwendig.
Mit Dependency Injection kann man da sehr einfach drum rum kommen.

Gerade im Menü solltest du vielleicht nicht mit setBounds(..) arbeiten. Da gibt es LayoutManager, mit denen du das selbe Resultat erreichen kannst.
 

pmSave

Mitglied
ok dann arbeite ich die empfehlungen mal ab.

1. @mihe7
Code:
gamePane.setVisible(true)
entfernen, hat leider nicht viel gebracht. Die Komponenten zeichnen sich immernoch falsch und die Buttons reagieren teilweise dann gar nicht auf Aktionen.

2. @Robat wie meinst du das?
Die JPanels solltest du erst zum CardLayout hinzufügen, wenn du all ihre Komponenten fertig hinzugefügt hast. (hat bei mir das Problem gelöst)
ich habe es versucht, indem ich den Bereich karten ganz an das Ende der konstruktors getan habe und den Befehl
Code:
cardsPane.setLayout(cl);
an den Schluss davon gepackt habe.
Leider hat sich dadurch auch nichts geändert.

3. @Robat
setBounds(Toolkit.getDefaultToolkit().getScreenSize().width/2-350, Toolkit.getDefaultToolkit().getScreenSize().height/2-300, 700, 400)

// würde ich ersetzen durch
setSize(700,400);
setLocationRelativeTo(null);
ich habe mich für die erste Variante entschieden da ich möchte, dass das Fenster egal bei welchem Bildschirm immer an der gleichen Position(mittig oben) dargestellt wird. Dein Vorschlag würde ja nur für meinen Monitor die richtige Position garantieren(obwohl ich nicht genau weiß, was der 2. Befehl (setLocation...) bedeutet :/ ).

4. @Robat
Einzelne Komponenten musst du nicht (und solltest du nicht) explizit mit setVisible(true) sichtbar machen.
ok habe ich verstanden und werde es unterlassen ^^

5. @Robat das mit Dependency Injection habe ich noch nicht ganz verstanden inwiefern sich dieses Entwurfsmuster jetzt genau hierauf anwenden lässt. Muss ich ein Interface implementieren um z.B. die Punkte vom MyJPanel an die Game Klasse zu übergeben? Oder vielleicht noch eine explizite Klasse Punkte?

6. @Robat
Gerade im Menü solltest du vielleicht nicht mit setBounds(..) arbeiten. Da gibt es LayoutManager, mit denen du das selbe Resultat erreichen kannst.
Ich weiß, aber ich habe es mir ein diesem Fall einfach gemacht indem ich vorher festgelegt habe, dass sich das Spiel nur auf einer bestimmten größe öffnen und spielen lässt. Dann habe ich mir das AbsolutLayout genommen, da es neben dem MigLayout das Layout ist, was ich am besten kenne.
 

Robat

Top Contributor
zu 2.
Das meinte ich nicht. Der Teil hier soll ans Ende des Konstruktors.
Java:
cardsPane.add(contentPane, STARTBILD);
cardsPane.add(gamePane, SPIELBILD);
cl.show(cardsPane, STARTBILD); // diese Zeile kann weg...

zu 3.
setSize(int,int) setzt erstmal nur die Fenstergröße und die soll ja scheinbar immer gleich sein.
setLocationRelativeTo(null) zentriert das Fenster mittig auf dem Bildschirm.

zu 5.
Ein Interface musst du dafür nicht anlegen. Hier mal das Konstrukt vereinfacht dargestellt.
Java:
class Game {
    public Game() {
        MyPanel panel = new MyPanel(this);
    }
    public void someMethod() { ... }
}

class MyPanel {
    private Game game;
    public MyPanel(Game game) {
        this.game = game;
        game.someMethod(); // kein static notwendig
    }
}
 

pmSave

Mitglied
nochmals danke! ich konnte mein programm durch die hilfen bisher erheblich verbessern!

1. das cardlayout funktioniert endlich so wie es soll, danke! es klappt sogar schon wenn der teil
cardsPane.add(contentPane, STARTBILD);
cardsPane.add(gamePane, SPIELBILD);
hinter
Code:
cardsPane.setLayout(cl);
steht, damit ist das eigentliche Problem gelöst.

2. ich habe setSize und den anderen Befehl eingebaut. Gibt es noch eine Möglichkeit, wie man das Fenster zwar mittig in x-Richtung (waagerecht), aber etwas erhöht als die Mitte in y-Richtung (senkrecht) damit einstellen kann?

3. nochmal danke für das vereinfachte Konstrukt, ich hätte nicht gedacht, dass es so "simpel" ist die statics zu entfernen!
 

Robat

Top Contributor
Bin kein Freund von der setBounds(..) Methode. Wenn du es an eine "bestimmte" Position haben willst, würde ich wohl setLocation(int, int) nehmen. Dann müsstest du dir wieder die Formel zur Berechnung von oben nehmen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F CardLayout.show() funktioniert teilweise nicht AWT, Swing, JavaFX & SWT 5
I Von Menü: Seite zu Seite springen (CardLayout) AWT, Swing, JavaFX & SWT 8
H CardLayout beschränken AWT, Swing, JavaFX & SWT 2
L Java- CardLayout AWT, Swing, JavaFX & SWT 10
L CardLayout in einer Klasse? AWT, Swing, JavaFX & SWT 2
A Swing CardLayout - kein Wechsel möglich AWT, Swing, JavaFX & SWT 5
J CardLayout AWT, Swing, JavaFX & SWT 3
G Cardlayout Refresh Probleme AWT, Swing, JavaFX & SWT 2
padde479 LayoutManager CardLayout wechselt die Karten nicht AWT, Swing, JavaFX & SWT 5
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
D Panel wird nicht angezeigt und Fragen zum CardLayout AWT, Swing, JavaFX & SWT 6
F Swing Cardlayout aufräumen AWT, Swing, JavaFX & SWT 4
U CardLayout im Applet AWT, Swing, JavaFX & SWT 4
Q CardLayout und Klassenmethodenzugriff AWT, Swing, JavaFX & SWT 11
Q CardLayout, ausgelagerte Panels, ActionListener AWT, Swing, JavaFX & SWT 5
C Swing CardLayout dynamisch erweitern AWT, Swing, JavaFX & SWT 11
H cardlayout und jscrollpane AWT, Swing, JavaFX & SWT 14
C CardLayout in BorderLayout? AWT, Swing, JavaFX & SWT 36
W Swing Probleme mit CardLayout AWT, Swing, JavaFX & SWT 28
D JMenuBar - CardLayout (Klasse anzeigen) AWT, Swing, JavaFX & SWT 3
D JSplitPane, Jtree, CardLayout (constraint must be a string) AWT, Swing, JavaFX & SWT 9
S LayoutManager Card des CardLayout mit MenuItem auswaehlen AWT, Swing, JavaFX & SWT 9
B RootPane bzw CardLayout Transparent machen AWT, Swing, JavaFX & SWT 7
L CardLayout - Show klappt nicht AWT, Swing, JavaFX & SWT 7
D Richtige implimentierung eines CardLayout AWT, Swing, JavaFX & SWT 3
P CardLayout - Anzeigeproblem AWT, Swing, JavaFX & SWT 2
I LayoutManager CardLayout mit anonymen Components AWT, Swing, JavaFX & SWT 4
Private Void LayoutManager Cardwechsel im CardLayout auch von Card aus? AWT, Swing, JavaFX & SWT 6
E LayoutManager Erster Versuch mit Cardlayout AWT, Swing, JavaFX & SWT 2
hdi LayoutManager Problem mit CardLayout AWT, Swing, JavaFX & SWT 11
C Problem mit CardLayout :( AWT, Swing, JavaFX & SWT 10
Dragonfire Swing CardLayout Maximum Size AWT, Swing, JavaFX & SWT 7
klattiator CardLayout - Cards auf Existenz prüfen AWT, Swing, JavaFX & SWT 3
S Frage/Problem CardLayout AWT, Swing, JavaFX & SWT 2
H CardLayout - Card erstellen hinzufügen usw. bis MI (12.3.) AWT, Swing, JavaFX & SWT 2
F CardLayout.show() -> NullPointerException AWT, Swing, JavaFX & SWT 4
G CARDLAYOUT AWT, Swing, JavaFX & SWT 2
D GroupLayout an un plötzlich is CardLayout Funktion tot? AWT, Swing, JavaFX & SWT 10
J CardLayout AWT, Swing, JavaFX & SWT 10
J CardLayout AWT, Swing, JavaFX & SWT 2
J Hilfe CardLayout AWT, Swing, JavaFX & SWT 3
H Cardlayout AWT, Swing, JavaFX & SWT 3
M CardLayout: Panel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
J Dialogfenster wird nicht aktualisiert/CardLayout AWT, Swing, JavaFX & SWT 6
m@nu StackOverflowError mit CardLayout? AWT, Swing, JavaFX & SWT 2
R CardLayout bei einem Quiz AWT, Swing, JavaFX & SWT 9
J Designfehler beim CardLayout() AWT, Swing, JavaFX & SWT 4
S Registerkarte mit CardLayout (AWT) erstellen ? AWT, Swing, JavaFX & SWT 6
D CardLayout Plus ? AWT, Swing, JavaFX & SWT 4
T CardLayout Ohne Cards/Reiter AWT, Swing, JavaFX & SWT 2
Juelin if Abfrage funktioniert nicht richtig AWT, Swing, JavaFX & SWT 10
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
P AWT Programm funktioniert nicht richtig AWT, Swing, JavaFX & SWT 35
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
R auto. Importanweisungen für javafx funktioniert in Eclipse nicht mehr AWT, Swing, JavaFX & SWT 4
M Scrollbar funktioniert nicht AWT, Swing, JavaFX & SWT 10
D Repaint Funktioniert nicht AWT, Swing, JavaFX & SWT 2
W JEditorPane textausrichtung nach settext funktioniert nicht mehr AWT, Swing, JavaFX & SWT 11
H Swing Anpassen der Textgröße im JLabel funktioniert nur bedingt AWT, Swing, JavaFX & SWT 7
sserio JFrame setIconImmage() funktioniert nicht AWT, Swing, JavaFX & SWT 3
T Swing Tooltip-Delay funktioniert nicht immer. AWT, Swing, JavaFX & SWT 1
B Output GUI funktioniert nur beim ersten Mal richtig. AWT, Swing, JavaFX & SWT 4
sserio Wie funktioniert ein Controller bei JavaFx? AWT, Swing, JavaFX & SWT 1
U Wie funktioniert das rotieren unter 2dGraphics, also wie stelle ich z. B. 90° ein? AWT, Swing, JavaFX & SWT 1
U Wie funktioniert Polygon? AWT, Swing, JavaFX & SWT 1
U Wie genau funktioniert 2dgraphics, in diesem Bezug? AWT, Swing, JavaFX & SWT 4
S ChoiceBox aus ArrayList per setValue() mit Wert belegen funktioniert nicht. AWT, Swing, JavaFX & SWT 0
H KeyListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
H BufferedImage zurücksetzen funktioniert nicht AWT, Swing, JavaFX & SWT 12
H RPG Programmieren, label.setLocation funktioniert nicht AWT, Swing, JavaFX & SWT 7
EinNickname9 Einfacher parser funktioniert nicht AWT, Swing, JavaFX & SWT 2
F Swing Adapt Row Height funktioniert nicht richtig :( AWT, Swing, JavaFX & SWT 7
P Swing jxmapviewer hinzufügen/nutzen funktioniert nicht AWT, Swing, JavaFX & SWT 7
CptK Wie funktioniert contains() für Path2D.Double AWT, Swing, JavaFX & SWT 10
J Anbindung Textfeldklasse an Table funktioniert nicht AWT, Swing, JavaFX & SWT 3
R Actionlistener funktioniert nicht AWT, Swing, JavaFX & SWT 4
B Stylen eines JTextPane funktioniert nicht AWT, Swing, JavaFX & SWT 1
VPChief Swing Eclipse: Nach Exportieren, Button funktioniert nicht mehr AWT, Swing, JavaFX & SWT 26
H Bewegung funktioniert nicht AWT, Swing, JavaFX & SWT 3
N Pixelfarbe abgleichen funktioniert nicht AWT, Swing, JavaFX & SWT 5
A Swing JTextField an Button übergeben für Popup-Fenster funktioniert nicht AWT, Swing, JavaFX & SWT 3
N eclipse Java, bilder benutzten Funktioniert nicht AWT, Swing, JavaFX & SWT 6
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
steven789hjk543 Swing Weiß jemand, warum dieses Programm nicht funktioniert? AWT, Swing, JavaFX & SWT 7
M Swing setMaximumSize funktioniert nicht AWT, Swing, JavaFX & SWT 1
K JavaFX funktioniert nicht AWT, Swing, JavaFX & SWT 2
B AWT actionPerformed Method funktioniert nicht AWT, Swing, JavaFX & SWT 12
L JavaFX Drag and Drop funktioniert nicht AWT, Swing, JavaFX & SWT 3
M Swing Code funktioniert auf Windows aber nicht Linux... AWT, Swing, JavaFX & SWT 3
T LookAndFeel LookAndFeel funktioniert nicht beim JFrame wechsel AWT, Swing, JavaFX & SWT 3
J JavaFX addListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
L WrapLayout funktioniert nicht AWT, Swing, JavaFX & SWT 1
kodela Accalerator für einige Menüoptionen funktioniert nicht mehr AWT, Swing, JavaFX & SWT 3
S JavaFX mit javac compilieren funktioniert nicht AWT, Swing, JavaFX & SWT 2
K Swing Entfernen von Panel funktioniert nicht AWT, Swing, JavaFX & SWT 5
J AWT System Farben / java.awt.SystemColor funktioniert nicht AWT, Swing, JavaFX & SWT 4
G Swing Swing Binding JList funktioniert nicht AWT, Swing, JavaFX & SWT 5
it_is_all ActionListener umlenken/ updaten mit AddActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 3
K javafx app > "run in browser" funktioniert nicht AWT, Swing, JavaFX & SWT 3
N JavaFX GridPane Halignment funktioniert nicht AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben