5

我有一个带有几个 JTable 的 JFrame。在某个 JTable 上,我需要在选中的 JFrame 中的单元格的位置(通过代码完成选择),只要它被选中。我想在玻璃板上画一些东西。我怎样才能做到这一点?

Point p = gui.rerouteTable.getLocation();
SwingUtilities.convertPointToScreen(p,gui.rerouteTable);

我认为这可以让我获得桌子的左上角。通过 Cell Height 和 SelectionListener 我可以确定我需要的位置。但我什至不能拿到桌子的左上角。为什么不?gui.rerouteTable.getLocation() 返回 (0,0) 所以很明显 convertPointToScreen 工作不正常。

4

3 回答 3

12

使用 JTable 的方法

public Rectangle getCellRect(int row, int column, boolean includeSpacing)
于 2013-10-22T10:53:22.327 回答
1

如果您因为其他原因不需要玻璃板,也可以考虑使用自定义单元格渲染器,它使用 的值isSelected来调节渲染器的外观。

附录:每次TableCellRenderer为特定单元调用 a 时,名为的参数是对从该单元的模型中获得的参数value的引用。Object

于 2013-10-22T11:29:08.190 回答
0

使用此代码,您可以获得表格中单元格的 x 和 y 坐标:

private void jtTableMouseClicked(java.awt.event.MouseEvent evt) {                                      
    int x = jtTable.getSelectedRow();
    int y = jtTable.getSelectedColumn();
} 
于 2015-09-30T17:52:40.960 回答