我在JTable
中显示JPanel
时遇到问题。我让用户按下一个按钮,在这个按钮中,表格应该生成表格并放入一个已经存在的面板,现在当我尝试在新的JFrame
中打开它时,数据显示完美,但我想要将其显示在JPanel
。
代码:
files = c.RequestFile("list"); //gets the data of files
Object[][] filesArray = new Object[files.size()][1];
int size = 0;
for (FileInfo fileInfo : files) {
filesArray[size][0] = fileInfo.getName();
size++;
}
fileTablePanel.setLayout(new BorderLayout());
fileTablePanel.add(new JScrollPane(createTable(filesArray)));
答案 0 :(得分:4)
您想要考虑使用TableModel
。您目前正在尝试将一个JTable
替换为另一个JTable
。这完全没必要。您应该只操纵TableModel
。
您可以在How to use Tables看到更多内容。您可以关注Creating a Table Model
部分答案 1 :(得分:0)
将新内容添加到面板后,您需要将面板重新绘制到屏幕:
fileTablePanel.revalidate();
fileTablePanel.repaint();
当您弹出一个新的JFrame时它会起作用,因为它是第一次将JFrame绘制到屏幕上。
答案 2 :(得分:0)
您需要像这样重新绘制表格
fileTablePanel.repaint();