java - 重绘(),重新验证(),无效()。如何使用它们?

标签 java swing jtable panel repaint

我的表格显示有问题。我的表最初有行。但是下次如果我做一些操作,我的表列表就会变空。因此,当我将该模型添加到表中时,表是空的。它是空的,但显示器在表格区域显示白色。

最初表格如下图所示。

First Table

然后我需要调用一些操作,如果该操作返回一个空列表,那么我将创建一个新的 Jtable 与该列表并将其放置在面板上。但它看起来像下面这样。

Empty Table

以下是我要执行此操作的方法,

pnlRight.removeAll();
//pnlRight.invalidate();
// pnlRight.revalidate();
// pnlRight.repaint();
pnlRight.add(new JScrollPane(table), BorderLayout.CENTER);
pnlRight.invalidate();
pnlRight.validate();
pnlRight.repaint();

我已阅读关于此 @kdgregory 的帖子之一,删除后我应该调用上述方法。这件奇怪的事情正在发生。如果我只调用 repaint() ,那么即使面板中的列名也会丢失(理想情况下,这种情况不应该发生。)请解释这是什么问题。

最佳答案

  • 不,我认为没有(合乎逻辑的)理由,删除一个 JTable(使用 JScrollPane)并放置另一个 JTable

  • 创建JTable并将所有数据存储到XxxTableModel

  • 重置XxxTableModel,然后以不同的结构加载另一个数据

  • 使用 CardLayout 在 View 之间切换

编辑

  • 以下代码

pnlRight.revalidate();

pnlRight.repaint();

没有引起任何问题,问题不在这段代码中....

关于java - 重绘(),重新验证(),无效()。如何使用它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12955605/

相关文章:

java - 如何检查字符串是否以确切的字符串结尾?

java - 与 JTable 中的单元格渲染器交互

java - 在Google Glass浏览器中打开本地html文件

java - 如何将元素添加到由我自己的类型参数化的 JList

java - JFrame 与 Main 中的其他类组合时无法打开

java - 使用 .db 文件填充 JTable

java - 通过setDataVector函数更新JTable数据

java - 将 JCheckBox 用作我的 JTable 单元格的 DefaultCellEditor

java - 为什么我仍然在相应的 try 语句主体中从未抛出 FileNotFoundException?

java - 将角度保持在 -179 到 180 度之间的简单方法