- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我即将使用 Eclipse 创建一个使用 JTable 的 Java 程序。我所做的是创建 JTable,将其与一个扩展 AbstractTableModel 的类(我称为 ResultsTableModel)相关联,并创建一个名为刷新的方法,该方法使用 fireTableDataChanged() 方法。该类如下所示:
public class ResultPanel extends JPanel {
ResultsTableModel rm;
JTable table;
public ResultPanel() {
rm = new ResultsTableModel();
table = new JTable();
setLayout(new BorderLayout());
add(new JScrollPane(table), BorderLayout.CENTER);
}
public void setData(List<Entry> entries) {
rm.setData(entries);
}
public void refresh() {
rm.fireTableDataChanged();
}
}
问题是,当我运行程序时,该程序在某个时刻调用refresh()方法,表数据不会刷新,事实上,表甚至根本没有显示。这是我构建表模型的类:
public class ResultsTableModel extends AbstractTableModel {
private List<Entry> entries = new ArrayList<Entry>();
private String[] colNames = {"STATUS", "ROOT", "DEFINITION"};
public void setData(List<Entry> list) {
this.entries = list;
}
@Override
public String getColumnName(int column) {
return colNames[column];
}
@Override
public int getColumnCount() {
return 3;
}
@Override
public int getRowCount() {
return entries.size();
}
@Override
public Object getValueAt(int arg0, int arg1) {
Entry entry = entries.get(arg0);
switch(arg1) {
case 0:
return entry.getStatus();
case 1:
return entry.getRoot();
case 2:
return entry.getDef();
default:
return "Invalid index";
}
}
}
这只是我能给出的对我遇到的问题的最好描述。程序没有抛出异常,只是没有显示表事件,尽管我调用了 setVisible(true);方法就可以了。任何帮助将不胜感激,谢谢。
最佳答案
您从未告诉您的 JTable 实际上包含创建的 TableModel。
您可以通过构造函数传递它:
rm = new ResultsTableModel();
table = new JTable(rm);
<小时/>
此外,我建议仅从 ResultsTableModel
类中调用 fireTableDataChanged()
(例如,在 setData()
的末尾) > 方法),而不是从您的观点(JPanel)明确地看出。拥有 TableModel 的全部意义在于 separate您从模型中看到的 View 。
关于java - fireTableDataChanged() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32194464/
我即将使用 Eclipse 创建一个使用 JTable 的 Java 程序。我所做的是创建 JTable,将其与一个扩展 AbstractTableModel 的类(我称为 ResultsTableM
我有一个合理简单的 JTable,我想每秒更新一次。 为此,我发现您应该使用 fireTableDataChanged(),但是,经过多次尝试后我仍然无法让它工作。 import java.awt.e
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 9 年前。 Improve this ques
fireTableDataChanged 似乎对我不起作用: 主要类: tblBookOfMonth = new JTable(tableModel); tableModel.setD
添加一行后,我预计 JTable 会被刷新。不幸的是事实并非如此。 我的代码是这样的: 如何添加行: JButton btnDodaj = new JButton("Dodaj");` panel.a
我在向 jtable 添加数据时遇到困难。它首先从集合中加载数据,使用 jtextfield 添加新数据,当然数据已添加到调试过的集合中,但我无法在 jtable 中显示新添加的日期。我已经尝试了所有
我有两个表,当单击该记录时,我尝试将一个表中的记录中的数据添加到另一个表中。 当前,当我单击表格时,值会添加到 clickedData,但该数据不会在表格中刷新。 这是我的代码: import jav
我有一个 JTable 可以跟踪一个人在餐厅等待就座的时间。我的问题是每一秒,当计时器“滴答作响”时,一行上的选择被删除。换句话说,如果您单击一行,它会以蓝色背景和轮廓突出显示,但是当计时器滴答作响时
它从 ThingSpeak 下载数据并显示在 jtable 中。我创建了一个“刷新”按钮,它将下载最新数据并显示在现有的 GUI 表中。 获取最新数据...工作 存储在列表/数组中...工作 更新 j
我在 Java Swing 中更新 JTable 时遇到问题。 我想要显示的数据每秒变化几次,我正在寻找一种有效的方法来更新 JTable 中的数据。 我使用方法 setModel() 来更新数据,它
我的程序中有一个 JTable。我想在单击 JButton 后更新它。我写了这个: DefaultTableModel myTable = new DefaultTableModel(celDatas
到目前为止,我对 JTable 的定义如下: JTable table = new JTable(model) { @Override public Compo
我是 still挣扎于JTable应该会自动更新。 情况如下:我实例化 MyTable (扩展 JTable ),并将其设置在我的 UI 类 ( MyView ) 中。 MyTable类将 UI 类和
我使用的 JTable 的 TableModel 通过 fireTableDataChanged() 定期更新。这些更改通常非常小,例如添加或修改的单行,但我无法预测它会在哪里发生。 有没有办法知道在
我已经多次搜索和看到这个问题,但没有一个解决方案有效。 我有一个 AbstractTableModel,我已经对其进行了扩展并称为 AccountTableModel。代码是这样的。 import I
我有一个扩展 AbstractTableModel 的 jtable。我注册了两个 ListSelectionListener,它们获取所选单元格的行和列。但是,当我调用模型中定义的 updateDa
本文整理了Java中com.tc.admin.common.XObjectTableModel.fireTableDataChanged()方法的一些代码示例,展示了XObjectTableModel
添加一行并调用 fireTableRowInserted() 还是添加所有行然后调用 fireTableDataChanged() 是个好主意? 最佳答案 如果您所做的只是添加新行,最好添加所有行,然
我是一名优秀的程序员,十分优秀!