2017-08-18 3 views
0

Dies ist ein Teil meines gesamten Codes. Ich drücke die Taste, um die Filme zu sehen, dann gehe ich zum neuen Bild und muss die Tabelle anzeigen. es passiert, aber ohne Kopf/Überschrift Teil der TabelleHeader wird nicht in JTable angezeigt

//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

Setzen Sie nicht die Größe des 'JTable', stellen Sie die Größe des' JScrollPane' .... –

+1

1) Verwenden Sie kein 'Null-Layout'! Verwenden Sie geeignete Layout-Manager! Oder 'setBounds (...)'. 2) Rufen Sie 'setVisible (true);' auf dem 'JFrame' auf, nachdem Sie alle Elemente hinzugefügt haben, nicht vorher. 3) Sie fügen 'JTable' direkt dem' JFrame' hinzu, fügen stattdessen 'JScrollPane' dem' JFrame' hinzu, Swing-Komponenten können nur einmal einem Container hinzugefügt werden (Dies ist vielleicht die Lösung für Ihr Problem, aber Befolgen Sie die Empfehlungen 1 und 2 bitte, da beide auf Ihr Problem (oder zukünftige Probleme) bezogen sind, dh 'frame.add (jsp);' anstelle von 'frame.add (jt);' – Frakcool

+0

@Frakcool danke Bruder. Problem hat sich gelöst. Ich lege den Tisch in Jpannel und füge jpannel in den Rahmen gemäß deinem Vorschlag hinzu. Problem wurde gelöst. Danke nochmals –

Antwort

0

Setzen Sie Ihre JTable in eine JScrollPane. Versuchen Sie folgendes:

add(new JScrollPane(jt)); 
2
  1. nicht null layout verwenden! Verwenden Sie geeignete Layout-Manager! Und verwenden Sie nicht setBounds(...).

  2. Rufen Sie setVisible(true); auf der JFrame, nachdem Sie alle Elemente hinzugefügt haben, nicht vorher.

  3. Du fügst die JTable zum JFrame direkt, anstatt die JScrollPane zum JFrame, Swing-Komponenten nur in einen Behälter einmal hinzugefügt werden hinzufügen können (Dies, um Ihr Problem vielleicht die Lösung, sondern folgen Empfehlungen 1 und 2 bitte, da beide auf Ihr Problem (oder zukünftige Probleme) bezogen sind).

    Wechsel:

    frame.add(jt); 
    

    An:

    frame.add(jsp); 
    
+1

Ich glaube, Sie haben Ihre "Change:" und "To:" Code-Abschnitte umgekehrt. – VGR

+0

@VGR du hast Recht, ich schrieb meine Antwort in Eile und habe das nicht bemerkt, danke für das Zeigen auf diesen Fehler :) bereits korrigiert ^^ – Frakcool