2013-12-12 133 views
1

由于我是java swing的初学者(我正在使用netbeans),所以我在将gui集成表时遇到了问题。 我有一个带有研究选项的面板的选项卡,我想在该面板下面添加研究结果生成的表格。 随着摇摆,我已经把一个JPanel“researchPanel”我的标签内,什么我做的是以下几点:JTable在JPanel中不可见

 table = my_research_function(options); 
     table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); 
     JScrollPane pane = new JScrollPane(table); 
     pane.setViewportView(table); 
     //resultsPanel.setLayout(new BorderLayout()); 
     resultsPanel.add(pane); 

     // I'm just using this to ensure i get a table 
     // with correct results - works fine 
     JOptionPane.showMessageDialog(null, new JScrollPane(table)); 

正如我在生成的代码看到了秋千,resultsPanel已经有一个布局。以防万一,我做了resultsPanel.setLayout(new BorderLayout())resultsPanel.add(pane, BorderLayout.CENTER),我在面板中看到了一些色调,但仍然没有数据。

此外,在netbeans的Design选项卡中,我将面板设置为Auto-Resize Vertical和Horizo​​ntal,因为结果表格可能很大。 我错过了什么?

回答

2

Swing组件只能有一个父组件。

你不能看到你的resultsPanelJTable由于以下原因

起初创建JScrollPane pane = new JScrollPane(table);

其添加到resultsPanel

但你重写你的table的父组件在这里JOptionPane.showMessageDialog(null, new JScrollPane(table));

因此,删除最后一行,您的JTable将可见。

+0

吨谢谢你! :)我不知道有多少相关的话题,我之前在这里发布,并couldn'n设法解决我的问题.. – ginou

+0

不客气。 – alex2410