2017-08-18 57 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