标题未显示在JTable中
问题描述:
这是我整个代码的一部分。我按按钮显示电影,然后去新的框架,并必须显示表。它发生,但没有表头/标题部分标题未显示在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);
}
答
将您的JTable放入JScrollPane中。试试这个:
add(new JScrollPane(jt));
答
不要使用
null layout
!使用合适的布局管理器并且不要使用setBounds(...)
。在你添加了所有元素之后,在
JFrame
之前调用setVisible(true);
而不是之前。-
要添加的
JTable
到JFrame
直接,而不是添加JScrollPane
到JFrame
,Swing组件只能被添加到一个容器一次(这也许是解决你的问题,而是遵循建议1和2请因为他们都与你的问题(或未来的问题)有关)。变化:
frame.add(jt);
要:
frame.add(jsp);
不要设置'JTable'的大小,设置'JScrollPane'的大小.... –
1)不要使用'null layout'!使用合适的布局管理器或者'setBounds(...)'。 2)在添加了所有元素之后调用'setFisible(true);'JFrame',而不是之前。 3)您直接将'JTable'添加到'JFrame',而不是将'JScrollPane'添加到'JFrame',Swing组件只能添加到容器中一次(这可能是您的问题的解决方案,但请遵照建议1和2,因为它们都与你的问题(或将来的问题)有关),即'frame.add(jsp);'而不是'frame.add(jt);' – Frakcool
@Frakcool感谢兄弟。问题已解决。我把桌子放在jpannel里,根据你的建议在框架中添加jpannel。问题已解决。再次感谢 –