2017-09-09 4 views
0

Dans le programme ci-dessous, j'ai créé un bouton qui, une fois cliqué, devrait montrer une autre jframe avec des composants ajoutés. Mais quand je clique sur ce bouton il ne montre aucun composant seulement une jframe vide apparaît avec le titre. Quel est mon problème quelqu'un peut-il l'expliquer?Ajout de composants à un JFrame


b1.addActionListener(new ActionListener() { 

@Override 
public void actionPerformed(ActionEvent arg0) { 
      JFrame f1 = new JFrame(); 
      f1.setVisible(true); 
      f1.setSize(800, 700); 
      f1.setTitle("Calc"); 
      f1.getContentPane().setLayout(new FlowLayout()); 

      JTextField t1 = new JTextField(10); 
      JTextField t2 = new JTextField(10); 
      JTextField t3 = new JTextField(10); 

      JButton b1 = new JButton("1"); 
      JButton b2 = new JButton("2"); 
      JButton b3 = new JButton("3"); 
      JButton b4 = new JButton("4"); 
      JButton b5 = new JButton("5"); 
      JButton b6 = new JButton("6"); 
      JButton b7 = new JButton("7"); 
      JButton b8 = new JButton("8"); 
      JButton b9 = new JButton("9"); 
      JButton b10 = new JButton("0"); 
      JButton b11 = new JButton("Add"); 
      JButton b12 = new JButton("Sub"); 
      JButton b13 = new JButton("Mul"); 
      JButton b14 = new JButton("Div"); 
      JButton b15 = new JButton("="); 
      JButton b16 = new JButton("CLR"); 

      f.getContentPane().add(t1); 
      f.getContentPane().add(t2); 
      f.getContentPane().add(t3); 

      f.getContentPane().add(b1); 
      f.getContentPane().add(b2); 
      f.getContentPane().add(b3); 
      f.getContentPane().add(b4); 
      f.getContentPane().add(b5); 
      f.getContentPane().add(b6); 
      f.getContentPane().add(b7); 
      f.getContentPane().add(b8); 
      f.getContentPane().add(b9); 
      f.getContentPane().add(b10); 
      f.getContentPane().add(b11); 
      f.getContentPane().add(b12); 
      f.getContentPane().add(b13); 
      f.getContentPane().add(b14); 
      f.getContentPane().add(b15); 
      f.getContentPane().add(b16); 

    } 
}); 
+0

Je ne sais pas ce 'f' est, mais vous y ajoutez le contenu, au lieu du nouveau cadre 'f1' ... –

+0

Voulez-vous dire ajouter les boutons à' f1'? Est-ce que vous définissez 'f1' pour être visible n'importe où? Publiez [mcve] et gardez-nous le besoin de deviner – c0der

Répondre

0

Dans votre code que vous avez refrenced un JFrame comme f1 et vous ajoutez le composant à f il n'a rien à ajouter à votre image afin, essayer d'utiliser d'ajouter à f1 au lieu de f et aussi déplacer f1.setVisible(true); ci-dessous après avoir ajouté tous les composants à f1 comme je l'ai indiqué ci-dessous

b1.addActionListener(new ActionListener() { 

    @Override 
public void actionPerformed(ActionEvent arg0) { 
     JFrame f1 = new JFrame(); 

     f1.setSize(800, 700); 
     f1.setTitle("Calc"); 
     f1.getContentPane().setLayout(new FlowLayout()); 

     JTextField t1 = new JTextField(10); 
     JTextField t2 = new JTextField(10); 
     JTextField t3 = new JTextField(10); 

     JButton b1 = new JButton("1"); 
     JButton b2 = new JButton("2"); 
     JButton b3 = new JButton("3"); 
     JButton b4 = new JButton("4"); 
     JButton b5 = new JButton("5"); 
     JButton b6 = new JButton("6"); 
     JButton b7 = new JButton("7"); 
     JButton b8 = new JButton("8"); 
     JButton b9 = new JButton("9"); 
     JButton b10 = new JButton("0"); 
     JButton b11 = new JButton("Add"); 
     JButton b12 = new JButton("Sub"); 
     JButton b13 = new JButton("Mul"); 
     JButton b14 = new JButton("Div"); 
     JButton b15 = new JButton("="); 
     JButton b16 = new JButton("CLR"); 

     f1.getContentPane().add(t1); 
     f1.getContentPane().add(t2); 
     f1.getContentPane().add(t3); 

     f1.getContentPane().add(b1); 
     f1.getContentPane().add(b2); 
     f1.getContentPane().add(b3); 
     f1.getContentPane().add(b4); 
     f1.getContentPane().add(b5); 
     f1.getContentPane().add(b6); 
     f1.getContentPane().add(b7); 
     f1.getContentPane().add(b8); 
     f1.getContentPane().add(b9); 
     f1.getContentPane().add(b10); 
     f1.getContentPane().add(b11); 
     f1.getContentPane().add(b12); 
     f1.getContentPane().add(b13); 
     f1.getContentPane().add(b14); 
     f1.getContentPane().add(b15); 
     f1.getContentPane().add(b16); 
     f1.setVisible(true); 
    } 
    }); 
1

erreur Peut-être faute de frappe dans votre cas comme adresse par l'Ancien Testament ses réponses.

  1. Utilisation f1 au lieu de f
  2. Déplacer la ligne f1.setVisible(true); ci-dessous vers le bas lorsque vous avez terminé avec l'ajout de boutons à elle, à savoir f1.getContentPane().add(b16);