- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经实现了一个自定义 TableModel,它从数据库中获取数据,然后在编辑单元格时将数据保存到数据库中。
即:
AbstractTableModel myModel = new AbstractTableModel(){
@Override public Object getValueAt(int r, int c){
//get value from the database, return it
}
@Override public setValueAt(Object val, int r, int c){
//update gui
//save change in database
}
//other methods here....
}
JTable tbl = new JTable(myModel);
这工作正常,但是为了调用 setValueAt(),您需要停止编辑单元格,默认情况下,这只会在您选择另一个单元格、按 enter 等时发生。
然后我添加了这一行:
tbl.putClientProperty("terminateEditOnFocusLost", true);
这意味着当我点击远离表格时调用 setValueAt() 并更新数据库,但是如果我编辑单元格的值,然后关闭 JFrame 而表格不会失去焦点或单击另一个单元格 setValueAt() 永远不会被调用因此数据库未更新,因此您对该单元格所做的任何更改都将丢失。
有什么方法可以防止这种情况并调用 setValueAt() 函数吗?
最佳答案
我不确定 JTable 是否可以解决问题,但您可以处理窗口关闭事件,手动接受编辑单元格的新值。
frame.addWindowListener(new WindowAdapter(){
@Override
public void windowClosing(WindowEvent e) {
if(table.isEditing())
// This will dispose editor and call setValueAt() of your model as normally happens
table.getCellEditor().stopCellEditing();
}
});
关于窗口关闭时未调用 Java Swing JTable TableModel setValueAt(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28139683/
我正在寻找类似于Java Swing TableModel的JavaScript MVC表格小部件 我还想要两种模型,一种完全本地的,一种远程的(XMLHttpRequest) 我还希望 View 接
我正在尝试创建一个类似于下面的模型的 JTable: 绿色角基本上是红色列标题和行标题的缓冲区空间。单元格不需要渲染成图中的颜色;但是,它们需要与表中其他“白色”单元格区分开来。 该表也不可编辑或选择
更新: 我找到了 @MadProgrammer 的答案,它成功了! Updating JTable on button click 基本上,您将一个refresh()方法添加到您的TableModel
在我的程序中,我希望在 JTable 中显示一些数据。我有一个包含数据的类,因此在 JTable 中呈现它的最简单方法似乎是扩展我的类,以便它实现 TableModel 接口(interface)并将
我有一个单独的类,它实现用于 JTable 的 TableModel 接口(interface)。我有一个 boolean 列,以一列复选框的形式呈现,我想知道如何通知外部对象某些值需要更新?如果我将
新手寻求帮助:-) 我正在开发一个小项目,以熟悉 Java 桌面开发和数据库连接。 所附代码在实例化后为我提供了一个空的 TableModel,因此 JFrame 中没有显示任何数据。测试类是使用 T
您可以创建表格模型并将其添加到表格中 TableModel tm = new TableModel(); JTable table = new JTable(tm); 但是,如果我初始化一个表 JTa
我正在将数据从 DAO 获取到 GUI 级别。 当我想加载表时,我得到一个空表,仅包含单击的数据库符号的正确行数: 加载我使用的元素: playlistTable.addMouseListener(n
在java swing表模型中,我们能够触发表更改、添加、删除等。我想知道如果组件不可见,这些方法调用是否会很昂贵? 例如,另一个窗口覆盖了它。或者它位于非 Activity 选项卡中。 最佳答案 为
我有一个用于存储数字的 JTable。我实际上只使用表格来查看/排序。即使某些列可能全部都是整数或长整型,为这些列提供 Double 类是否会导致失败(除了可能需要分配更多空间之外)。我可以解析这些数
我正在尝试获取 JTable 的已排序 TableModel,这是通过以下简单的 regex 标准完成的: try { TableRowSorter sortRow = new TableRo
在下面的示例中,一个窗口显示一个表格,其中包含窗口本身的宽度。调整窗口大小时,其宽度值反射(reflect)了当前的真实情况。 这怎么可能? Swing 如何通知表,它应该重新请求模型?或者模型正在接
我有一个使用 setAutoCreateRowSorter(true) 的 JTable 和一个附加的 RowSorterListener,如下所示,因为我需要在我的应用程序的其他地方对某种 JTab
我有课; public class A extends AbstractTableModel { ... } 我使用 ResultSetMetaData 构建 TableModel 以匹配数据库中的
我需要将繁重的数据集加载到 QTableView 中。数据集在内存中不小于 700Mb,我不想将其全部加载到内存中。 QSqlQueryModel 对我来说并不理想,原因有两个 - 它不可编辑,也不是
我的 TableModel实现通常位于 ArrayList以实现高效的随机访问性能。然而,ArrayList的 remove(int)实现看起来相当低效,因为它涉及制作 System.arrayCop
我有一个简单的 Java 桌面应用程序,它显示带有自定义 TableModel 的 JTable。 在 boolean 变量的基础上,我想显示一个具有不同列的表。但我无法做到这一点。 This is
我面临 JTable 和与其关联的 TableModel 的问题。这里的问题是,假设如果我在 JTable 上进行行选择,我想从 TableModel 获取特定的行对象并将其传递到某个地方。有谁知道如
我创建了一个包含人员列表的 JTable。一个 Person 总是可以包含另一个 Person(或者可能是它自己)。因此,用户可以单击该列,然后会出现一个 JComboBox。此 JComboBox
我有一个jTable,它根据一些jComboBox加载搜索结果。我使用 DefaultTableModel 来实现此目的,对于其他 jTable,我使用 TableModel。 搜索后,jTable
我是一名优秀的程序员,十分优秀!