2017-08-18 6 views
0

Ceci est une partie de mon code entier. J'appuie sur le bouton Afficher les films, puis va à nouveau cadre et doit montrer la table. son arriver mais sans en-tête/en-tête partie de la tableL'en-tête n'apparaît pas dans JTable

//Record Show 
    if(e.getSource()==ShowMovies){ 
     Frame frame = new JFrame("Show Movies"); 
     frame.setBounds(10, 20, 500, 500); 

     Container cntr = frame.getContentPane(); 
     cntr.setLayout(null); 
     frame.setVisible(true); 
     frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); 

     //f=new JFrame();  

     String col[] = {"ID","NAME","SALARY"}; 
     String data[][] = { 
       {"101","Amit","670000"},  
       {"102","Jai","780000"},  
       {"101","Sachin","700000"}};  

     JTable jt=new JTable(data,col);  
     jt.setBounds(100,40,300,300); 
     jt.setPreferredScrollableViewportSize(new Dimension(400,50)); 
     jt.setFillsViewportHeight(true); 
     JScrollPane jsp=new JScrollPane(jt); 
     frame.add(jt);  
    } 
+0

Ne réglez pas la taille de la 'JTable', définissez la taille de la' JScrollPane' .... –

+1

1) N'utilisez pas 'null layout'! Utilisez les gestionnaires de disposition appropriés! Ou 'setBounds (...)'. 2) Appelez 'setVisible (true);' sur le 'JFrame' après avoir ajouté tous les éléments, pas avant. 3) Vous ajoutez directement le 'JTable' au' JFrame', ajoutez plutôt 'JScrollPane' au' JFrame', les composants Swing ne peuvent être ajoutés à un conteneur qu'une seule fois (Ceci est peut-être la solution à votre problème, mais suivez les recommandations 1 et 2 s'il vous plaît car les deux sont liés à votre problème (ou problèmes futurs)), à savoir 'frame.add (jsp);' au lieu de 'frame.add (jt);' – Frakcool

+0

@Frakcool remercie frère. Le problème a été résolu. Je mets la table en jpannel et j'ajoute jpannel dans le cadre selon ta suggestion. Le problème a été résolu. merci encore –

Répondre

0

Mettez votre JTable dans un JScrollPane. Essayez ceci:

add(new JScrollPane(jt)); 
2
  1. Ne pas utiliser null layout! Utilisez les gestionnaires de disposition appropriés! Et n'utilisez pas setBounds(...).

  2. Appelez setVisible(true); sur le JFrame après avoir ajouté tous les éléments, pas avant.

  3. Vous ajoutez le JTable au JFrame directement, ajouter à la place du JScrollPane au JFrame, composants Swing ne peuvent être ajoutés à un récipient une fois (Ceci est peut-être la solution à votre problème, mais suivre les recommandations 1 et 2 s'il vous plaît, car les deux sont liés à votre problème (ou à des problèmes futurs)).

    Change:

    frame.add(jt); 
    

    Pour:

    frame.add(jsp); 
    
+1

Je crois que vous avez vos sections de code "Change:" et "To:" inversées. – VGR

+0

@VGR vous avez raison, j'ai écrit ma réponse à la hâte et je n'ai pas remarqué cela, merci d'avoir signalé cette erreur :) déjà corrigée ^^ – Frakcool