需要有关 JTable 的帮助?
Need help about JTable?
我不知道如何具体说明我的问题,因为我想不出确切的词语。
但我会尽量具体。
我在做什么:
我正在制作一个数据库应用程序,它使用 JTable 来获取用户数据并将其提供给数据库。
我的问题:
在我的应用程序中,每当用户单击 JButton 时,代码都会从 JTable 中获取条目并将它们提交到数据库(即我在 JButton 的 actionlistener 中添加了数据库操作)。
问题是每当用户在 JTable 的单元格中键入一个条目并且没有点击 "enter" 或 select 另一个 "row" 时,代码将不会获取该条目。
我会尽量具体一点:
我想说的是,假设用户正在第一行的第二列中键入内容,并且他没有在 JTable 的单元格上按回车键或 select 进入不同的行,而是立即点击了 JButton,然后
model.getValueAt(0,1).toString ///is returning null because intially nothing was there.
但是,如果按下回车键或select编辑不同的行,它会产生输入的值。
那么,如何在按下 JButton 的同时将所有输入的值获取到 JTable 的单元格中。
我不知道描述这个问题或疑问的确切词语,所以我无法正确地提出问题。
谢谢!
您可以尝试一些简单的操作,例如添加 fireTableDataChanged(),它... "Notifies all listeners that all cell values in the table's rows may have changed"
您可以在您的 JButton Action 侦听器中调用它,或者在您的 table 上实现一个 Lose Focus 侦听器。
可以在此处找到更多信息
http://docs.oracle.com/javase/7/docs/api/javax/swing/table/AbstractTableModel.html
或者这里https://docs.oracle.com/javase/tutorial/uiswing/events/focuslistener.html
最后,可以在此处找到可能对您有所帮助的更深入的答案
How to refresh data in JTable I am using TableModel
收集模型更改并按下按钮使您的 SQL。
TableModel model = table.getModel();
model.addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
... e.firstRow, e.lastRow
}
});
或在Java 8
model.addTableModelListener((e) -> {
... e.firstRow, e.lastRow
});
我不知道如何具体说明我的问题,因为我想不出确切的词语。
但我会尽量具体。
我在做什么:
我正在制作一个数据库应用程序,它使用 JTable 来获取用户数据并将其提供给数据库。
我的问题: 在我的应用程序中,每当用户单击 JButton 时,代码都会从 JTable 中获取条目并将它们提交到数据库(即我在 JButton 的 actionlistener 中添加了数据库操作)。
问题是每当用户在 JTable 的单元格中键入一个条目并且没有点击 "enter" 或 select 另一个 "row" 时,代码将不会获取该条目。
我会尽量具体一点:
我想说的是,假设用户正在第一行的第二列中键入内容,并且他没有在 JTable 的单元格上按回车键或 select 进入不同的行,而是立即点击了 JButton,然后
model.getValueAt(0,1).toString ///is returning null because intially nothing was there.
但是,如果按下回车键或select编辑不同的行,它会产生输入的值。
那么,如何在按下 JButton 的同时将所有输入的值获取到 JTable 的单元格中。
我不知道描述这个问题或疑问的确切词语,所以我无法正确地提出问题。
谢谢!
您可以尝试一些简单的操作,例如添加 fireTableDataChanged(),它... "Notifies all listeners that all cell values in the table's rows may have changed" 您可以在您的 JButton Action 侦听器中调用它,或者在您的 table 上实现一个 Lose Focus 侦听器。
可以在此处找到更多信息 http://docs.oracle.com/javase/7/docs/api/javax/swing/table/AbstractTableModel.html
或者这里https://docs.oracle.com/javase/tutorial/uiswing/events/focuslistener.html
最后,可以在此处找到可能对您有所帮助的更深入的答案 How to refresh data in JTable I am using TableModel
收集模型更改并按下按钮使您的 SQL。
TableModel model = table.getModel();
model.addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
... e.firstRow, e.lastRow
}
});
或在Java 8
model.addTableModelListener((e) -> {
... e.firstRow, e.lastRow
});