2017-08-18 26 views
0

這是我整個代碼的一部分。我按按鈕顯示電影,然後去新的框架,並必須顯示錶。它發生,但沒有表頭/標題部分標題未顯示在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

不要設置'JTable'的大小,設置'JScrollPane'的大小.... –

+1

1)不要使用'null layout'!使用合適的佈局管理器或者'setBounds(...)'。 2)在添加了所有元素之後調用'setFisible(true);'JFrame',而不是之前。 3)您直接將'JTable'添加到'JFrame',而不是將'JScrollPane'添加到'JFrame',Swing組件只能添加到容器中一次(這可能是您的問題的解決方案,但請遵照建議1和2,因爲它們都與你的問題(或將來的問題)有關),即'frame.add(jsp);'而不是'frame.add(jt);' – Frakcool

+0

@Frakcool感謝兄弟。問題已解決。我把桌子放在jpannel裏,根據你的建議在框架中添加jpannel。問題已解決。再次感謝 –

回答

0

將您的JTable放入JScrollPane中。試試這個:

add(new JScrollPane(jt)); 
2
  1. 不要使用null layout!使用合適的佈局管理器並且不要使用setBounds(...)

  2. 在你添加了所有元素之後,在JFrame之前調用setVisible(true);而不是之前。

  3. 要添加的JTableJFrame直接,而不是添加JScrollPaneJFrame,Swing組件只能被添加到一個容器一次(這也許是解決你的問題,而是遵循建議1和2請因爲他們都與你的問題(或未來的問題)有關)。

    變化:

    frame.add(jt); 
    

    要:

    frame.add(jsp); 
    
+1

我相信你有你的「改變:」和「到:」代碼部分倒過來。 – VGR

+0

@VGR你是對的,我寫了我的答案匆忙併沒有注意到,謝謝指出那個錯誤:)已經糾正^^ – Frakcool