Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java swing jtable单元格渲染器组件的屏幕位置_Java_Swing_Jtable_Layout Manager_Jcheckbox - Fatal编程技术网

java swing jtable单元格渲染器组件的屏幕位置

java swing jtable单元格渲染器组件的屏幕位置,java,swing,jtable,layout-manager,jcheckbox,Java,Swing,Jtable,Layout Manager,Jcheckbox,我对swing是个新手,我面临的第一个严重问题是: 我有一个带有JTable的JPanel,表下有很多复选框。我正在尝试将表格下面的复选框与表格第一列中的复选框对齐。问题是-这必须在模型数据更改时完成 在JTable中触发fireTableDataChanged()后,立即无法获取其自定义单元格渲染器组件(在我的示例中是JCheckBox)的屏幕位置。 据我所知,之所以会发生这种情况,是因为JTable是异步重新绘制的。每当我试图获取位置时,就会抛出IllegalComponentStateEx

我对swing是个新手,我面临的第一个严重问题是:

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

在JTable中触发fireTableDataChanged()后,立即无法获取其自定义单元格渲染器组件(在我的示例中是JCheckBox)的屏幕位置。 据我所知,之所以会发生这种情况,是因为JTable是异步重新绘制的。每当我试图获取位置时,就会抛出IllegalComponentStateException


对此,我们非常感谢您的任何意见。

您不应该手工操作。您应该使用适当的layoutManager。检查不同布局的此链接:


这可能有助于您获取行和列的屏幕位置

Rectangle rect=cartTable.getCellRect(行、列、真);
//表Jtable对象名称
intx=Double.valueOf(rect.getX()).intValue();

inty=Double.valueOf(rect.getY()).intValue()

因此,假设您成功地将复选框与表中的复选框对齐。。。如果用户更改了表格列的列宽,从而更改了jtable复选框的位置,会发生什么情况?没关系,重要的是当用户第一次看到表格时,这些复选框将对齐。为了更快地获得更好的帮助,发布您的演示问题的内容。QDS:在第一个JTable下面使用另一个JTable。在其上设置setTableHeader(null)‘showHorizontalLines(false)’‘showVerticalLines(false)’。这样,它看起来就像一个面板,Swing将为您处理对齐问题。您也可以在两个表上使用相同的ColumnModel,因此当用户调整第一个表上的列的大小时,它也将在第二个表中调整大小。不过我不确定。Nikola,这是一个有趣的建议,但它看起来更像是一个黑客。我不知道布局管理器能提供什么帮助,因为我在表下有组件。表格单元格内的复选框具有JCheckBox.CENTER对齐。我不想硬编码它们的插入值。布局管理器会自动修复所有与视觉相关的问题,例如对齐,它们会处理页面大小调整、组件大小调整……通过使用布局管理器,您永远不会更改插入否,我在我的应用程序中到处使用GridBagLayout,但仍然不知道布局管理器如何帮助我解决问题。唯一可能的方法是以某种方式在表格单元格中获取渲染器组件的x。