我是新手,我遇到了第一个严重的问题,这里是:
我有一个带JTable的JPanel,下面有很多复选框。我正在尝试将表格下方的复选框与位于第一个表格列中的复选框对齐。问题是 - 当模型数据发生变化时必须这样做。
在JTable中触发fireTableDataChanged()之后,无法获得其自定义单元格渲染器组件(在我的例子中是JCheckBox)的屏幕位置。 据我所知,这是因为JTable异步重绘。每当我尝试获取该位置时,都会抛出IllegalComponentStateException。
对此有任何想法都非常感谢。
答案 0 :(得分:2)
您不应该手动执行此操作。您应该使用适当的layoutManager。查看此链接以了解不同的布局:
http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html
答案 1 :(得分: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();