0

我是新手,我遇到了第一个严重的问题,这里是:

我有一个带有 JTable 的 JPanel 和表格下方的许多复选框。我正在尝试将表格下方的复选框与位于第一个表格列中的复选框对齐。问题是 - 这必须在模型数据更改时完成。

在 JTable 中触发 fireTableDataChanged() 之后,立即无法获取其自定义单元格渲染器组件(在我的情况下是 JCheckBox)的屏幕位置。据我了解,这是因为 JTable 是异步重绘的。每当我尝试获取位置时,都会抛出 IllegalComponentStateException。

对此的任何想法都将受到高度赞赏。

4

2 回答 2

2

您不应该手动执行此操作。您应该使用适当的 layoutManager。检查此链接以了解不同的布局:

http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

于 2012-01-12T15:13:32.003 回答
0

这可能会帮助您获取行和列的屏幕位置。

Rectangle rect= cartTable.getCellRect(row,column,true); //cartTable-Jtable object name int x=Double.valueOf(rect.getX()).intValue(); int y=Double.valueOf(rect.getY()).intValue();

于 2013-10-03T11:16:37.647 回答