Mik*_*ike 1 java swing jtable jscrollpane
我在从数据库中获取结果后在运行时创建一个表.我的应用程序流程是这样的.
JScrollPane tableScroll = new JScrollPane();码:
private void setResultTable(Vector documents, Vector header) {
   TableModel model = new DefaultTableModel(documents, header);
   documentTable.setModel(model);
   tableScroll.add(documentTable);
   tableScroll.repaint();
}
我的问题是,在调用setResultTable后,结果没有出现在表中.请帮帮我.提前致谢 !!!
您似乎将JTable直接添加到JScrollPane.如果是这样,这是不正确的,您将要更改此项,以便您实际将表添加到滚动窗格的视口中:
tableScroll.getViewport().add(documentTable);
执行此操作后无需重新绘制JScrollPane.
例如:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
public class AddTableToScroll {
   public static void main(String[] args) {
      final JScrollPane sPane = new JScrollPane();
      // Sorry Jeanette!!
      sPane.setPreferredSize(new Dimension(200, 150));
      JButton button = new JButton(new AbstractAction("Press Me!") {
         public void actionPerformed(ActionEvent arg0) {
            DefaultTableModel model = new DefaultTableModel(new Integer[][] {
                  { 1, 2 }, { 3, 4 } }, new String[] { "A", "B" });
            JTable table = new JTable(model);
            sPane.getViewport().add(table);
         }
      });
      JPanel panel = new JPanel();
      panel.add(sPane);
      panel.add(button);
      JOptionPane.showMessageDialog(null, panel);
   }
}
如果这没有帮助,你还要告诉我们到底发生了什么,你看到了什么,如果可能的话,为我们提供一个小的可编译的可运行程序来证明你的问题,一个SSCCE