我有桌子的显示有问题。我的表最初有行。但是下次如果我做一些操作,我的表列表就会变空。因此,当我将该模型添加到表中时,表格为空。它是empty
但显示在表格区域显示白色。
最初表格如下图所示。
然后我需要调用一些动作,如果该动作返回一个空列表,那么我正在创建一个新动作 Jtable与该列表并将其放在面板上。但看起来如下。
以下是我接下来要做的方法,
pnlRight.removeAll();
//pnlRight.invalidate();
// pnlRight.revalidate();
// pnlRight.repaint();
pnlRight.add(new JScrollPane(table), BorderLayout.CENTER);
pnlRight.invalidate();
pnlRight.validate();
pnlRight.repaint();
我已阅读此@kdgregory上的一篇帖子,删除后我应该调用上述方法。这件奇怪的事情正在发生。如果我只调用repaint(),那么甚至连面板中都缺少列名(理想情况下,在这种情况下不应该这样做。)请解释这有什么问题。
答案 0 :(得分:4)
我认为没有(合乎逻辑的)理由,删除JTable
(JScrollPane
)并将其放在另一个JTable
创建JTable
并将所有数据存储到XxxTableModel
,
重置XxxTableModel
,然后加载不同结构的其他数据
使用CardLayout
切换视图
修改
pnlRight.revalidate();
pnlRight.repaint();
没有引起任何问题,此代码中没有问题....