2017-08-27 4 views
0

ainsi après avoir résolu ma première erreur due à l'aide de Hovercraft j'ai finalement commencé à coder et préparer des choses pour mon projet actuel. Cependant, quand j'ai essayé d'ajouter l'étiquette maintenant il ne me montre rien du tout, je veux dire si je supprime l'étiquette et ajoute d'autres choses comme un bouton ou plus, il me montrerait le bouton mais le moment où j'ajoute le jlabel au code, il me donne juste un écran vide complet, peu importe ce que la propriété de l'étiquette soit. Le code du projet est la suivante:Le cadre ne montre rien, et ne montre aucune erreur

Cadre principal:

public class Parking_Mania { 

public static void main(String []args)throws Exception 
{ 
    new GameFrame("Paking Mania"); 
} 
} 

Cadre du jeu:

public class GameFrame extends JFrame{ 

File info=new File("information.txt"); 

public GameFrame(String name) throws IOException 
{ 
    if(!info.exists()) 
    { 
     info.createNewFile(); 
    } 
    this.setTitle(name); 
    this.setSize(640,510); 
    this.setLocationRelativeTo(null); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    this.setResizable(false); 
    this.setVisible(true); 

    Frames frame=new Frames(); 
    this.add(frame); 
    frame.panel.show(frame, "opening"); 

} 
} 

classe Panel qui gère les changements de panneaux différents:

public class Frames extends JPanel{ 

CardLayout panel= new CardLayout(); 

public Frames() 
{ 
    this.setLayout(panel); 
    Opening op=new Opening(this); 
    //nxtframe nf= new nxtframe(this); 
    this.add(op, "opening"); 
    //this.add(nf, "nt"); 
    } 

} 

Enfin, le panneau qui devrait se montrer sur le cadre:

public class Opening extends JPanel{ 


private Frames f; 
private JLabel bg=new JLabel(); 
//private JLabel helpframe=new JLabel(); 
private JButton play=new JButton(); 
/*private JButton help=new JButton(); 
private JButton helpclose=new JButton(); 
private ImageIcon background;*/ 

public Opening(final Frames f){ 

    this.f=f; 
    this.setBackground(Color.BLACK); 
    //this.add(bg); 
    this.add(play); 
    //bg.setIcon(new ImageIcon(getClass().getResource("/bg.jpg"))); 

} 
} 
+0

Sans créer JFrame comment vous pouvez ajouter des composants dessus Créer JFrame (intialize) que d'ajouter tous vos composants après cet ensemble Le cadre visible.Deuxième chose que vous essayez d'ajouter JFrame sur Jpanel il devrait être l'inverse –

+0

Je doute que J'essaie d'ajouter jframe sur JPanel pouvez-vous s'il vous plaît signaler afin que je puisse le corriger? J'ai aussi créé (initialiser JFrame déjà, n'est-ce pas?) Au premier cours. Bien que je me souvenais que je devrais ajouter des composants avant de le mettre en évidence –

Répondre

3

Les composants doivent être ajoutés à la trame avant que la trame soit rendue visible.

Commencez par les exemples de travail trouvés dans Swing tutorial. Le tutoriel couvre toutes les bases de Swing.

Je voudrais surtout commencer par le tutoriel sur How to Use CardLayout pour le premier code de démo à comprendre et à modifier.

Le tutoriel va vous montrer comment mieux structurer votre code afin de ne pas prolonger les panneaux, juste pour ajouter des composants à un panneau.

+0

OMG c'était l'erreur !!! Je n'ai jamais regardé la partie visible avant de vouloir relire mon code auparavant. PS: La raison pour laquelle j'étends des panneaux est parce que le code est plus organisé, je veux dire que chaque classe n'a pas l'air trop groupée avec du code, cela le rend un peu moins groupé et semble un peu organisé (Suggestion de mon professeur qui m'a appris java l'année dernière (12e année)). –