嗨,我希望我的JTable实现TableModelListener,这样如果TableModel的数据发生变化,它就可以做出反应。但是,一旦我在JTable子类中实现了TableModelListener,该表就不再显示在框架中了。
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class JTableDisappears extends JFrame {
private DefaultTableModel watchlistTableModel;
private WatchlisttTable watchlistTable;
public JTableDisappears() {
super();
setSize(200,200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
createTable();
setVisible(true);
}
private void createTable() {
String[] zeilenNamen = { "Name", "Symbol", "Price", "%" };
String[][] data = { { "1", "AAPL", "3", "4" }, { "A", "2", "C", "D" }, { "2", "B", "3", "4" } };
watchlistTableModel = new DefaultTableModel(data, zeilenNamen);
watchlistTableModel.setColumnIdentifiers(zeilenNamen);
watchlistTable = new WatchlisttTable(watchlistTableModel);
add(new JScrollPane(watchlistTable));
}
public static void main(String[] args) {
new JTableDisappears();
}
}
class WatchlisttTable extends JTable {
public WatchlisttTable(TableModel tableModel) {
super(tableModel);
}
}
但是如果我让我的JTable子类像这样实现一个TableModelListener:
class WatchlisttTable extends JTable implements TableModelListener{
public WatchlisttTable(TableModel tableModel) {
super(tableModel);
}
@Override
public void tableChanged(TableModelEvent e) {
}
}
该表不再显示在框架中。为什么?我能做些什么来解决这个问题?
这是因为JTable
已经实现了TableModelListener
(请参见https://docs.oracle.com/javase/8/docs/api/javax/swing/jtable.html,实现的接口列表),它的TableChanged()
方法在JTable
类的函数中是必不可少的。
如果需要对tablechanged()
事件执行其他操作,也必须从jtable
调用方法:
class WatchlisttTable extends JTable {
public WatchlisttTable(TableModel tableModel) {
super(tableModel);
}
@Override
public void tableChanged(TableModelEvent e) {
super.tableChanged(e);
}
}
问题内容: 我已经弄清楚了如何正确地对a 进行排序,但是当表单元发生更改时,我无法弄清楚如何自动更新排序顺序。现在,我有这段代码(很长),主要是基于Java教程的How to Use Tables中的代码 。我强调了我所做的更改。在这种情况下,新添加的值可以正确排序,但是当我进入编辑值时,即使我打电话给我,它似乎也没有采取任何措施。 简而言之,当模型中的数据值更改时,如何使表重新排序? 问题答案:
我在JTable上遇到了问题。当我以固定长度的文本字段作为编辑器在单元格中键入时,当达到长度时,我会自动跳到下一行。那样的话,我就可以继续写下去了。之后,当我想更改第一行中的一些文本并双击单元格时,文本将消失。 奇怪的是,当我按“Enter”转到下一行,双击第一行时,文本并没有消失。
null null 谢了。
问题内容: 这是我第一次在这里发帖,如果我出错了,抱歉。 我正在处理一个JTable,其中的列数据必须验证一些参数,例如: 第3列的值> 30 第4列的值> 10 第5列的值> 4 另外,前2列也被“自动”填充,其余的列则为0。 如果该数据是正确的,则在第5栏中,我将显示一个勾号图像,否则,我将显示一个警告图像。 为了验证这一点,我使用以下代码 此代码的问题是返回堆栈溢出,我不知道该如何处理。 还
我试图理解Swing应用程序中表的具体工作方式。有一个从数据库中检索数据并在JTable上显示数据的表。我浏览了代码,并计算出如何从数据库中读取数据。 我似乎在纠结的一件事是数据如何显示在表上以及如何更新。我知道如何在表中显示数据,但与此表的不同之处在于数据是动态更新的。也就是说,并非从数据库检索的所有数据都显示在表上。 看起来应用程序显示了许多行,当用户滚动鼠标或将滚动条移动到表的底部/末端时,
本文向大家介绍Java JTable 实现日历的示例,包括了Java JTable 实现日历的示例的使用技巧和注意事项,需要的朋友参考一下 效果图: 主要思想:日历最核心的功能就是能显示某年某月对应的日期和星期几。因此只要实现传入具体的年份和月份,得到一组存放了日期的数组a[ ]即可。其中数组的大小设置成42,要考虑的问题是当月的第一天对应星期几。日期数组中的前七个,肯定包含了当月的第一天,把这一