Java 更新JTable GUI后,如何获取事件?

Java 更新JTable GUI后,如何获取事件?,java,swing,events,jtable,Java,Swing,Events,Jtable,我目前正在侦听TabeModel的tableChanged()事件,但是,该事件在JTable实际更新/将行添加到GUI之前触发。我试图重新调整表格高度,需要知道JTable何时完成添加和显示行及其内容 或者是否可以让JTable将行高设置为每行中组件的大小?我试图在getCellRenderer中这样做,但这只会导致无休止地触发tableChanged事件。将您的代码包装在SwingUtilities.invokeLater(…)中的TableModelListener中。这会将代码添加到ED

我目前正在侦听TabeModel的tableChanged()事件,但是,该事件在JTable实际更新/将行添加到GUI之前触发。我试图重新调整表格高度,需要知道JTable何时完成添加和显示行及其内容


或者是否可以让JTable将行高设置为每行中组件的大小?我试图在getCellRenderer中这样做,但这只会导致无休止地触发tableChanged事件。

将您的代码包装在SwingUtilities.invokeLater(…)中的TableModelListener中。这会将代码添加到EDT的末尾,以便在执行时完成表更新。

将代码包装在SwingUtilities.invokeLater(…)中的TableModelListener中。这会将代码添加到EDT的末尾,因此表更新应该在执行时完成。

这是可行的,但是在添加行和调整行大小之间有明显的延迟。有没有一种方法可以在单元渲染过程中设置行高,而无需JTable的setRowHeight(行,高度)函数触发tablechanged事件?执行此操作时不应有延迟(毫秒)。发布您的SSCCE以演示问题。不应更改渲染中的行高(或任何表属性)。假设您有一个类似“添加行”之类的按钮,所以无论何时在表中添加行,您都应该在此时调整行高度。然后你可以摆脱TableModelListener。啊,你纠正了我的错误,我有一个线程。睡在我尝试的地方!非常感谢你!但是,在添加行和调整行大小之间存在明显的延迟。有没有一种方法可以在单元渲染过程中设置行高,而无需JTable的setRowHeight(行,高度)函数触发tablechanged事件?执行此操作时不应有延迟(毫秒)。发布您的SSCCE以演示问题。不应更改渲染中的行高(或任何表属性)。假设您有一个类似“添加行”之类的按钮,所以无论何时在表中添加行,您都应该在此时调整行高度。然后你可以摆脱TableModelListener。啊,你纠正了我的错误,我有一个线程。睡在我尝试的地方!非常感谢你!