gpt4 book ai didi

java - JTable 更新后不显示结果?

转载 作者:行者123 更新时间:2023-11-29 07:18:05 25 4
gpt4 key购买 nike

我在从数据库中获取结果后在运行时创建一个表。我的申请流程是这样的。

  1. 正在初始化一个空的 JScrollPane(); JScrollPane tableScroll = new JScrollPane();
  2. 从数据库中获取结果;
  3. 使用以下方法将结果更新到 JTable 并将 JTable 添加到 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。如果是这样,这是不正确的,您需要更改它,以便您实际上将表格添加到滚动 Pane 的视口(viewport)中:

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

关于java - JTable 更新后不显示结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7801607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com