Java获取列TableHeader的边界

时间:2015-05-13 06:52:48

标签: java swing jtable jtableheader

我需要在表头中获取单个列的矩形。有没有办法接收这些信息?

1 个答案:

答案 0 :(得分:0)

我希望您想知道表格标题中单元格的大小?

要获得单元格的高度,您必须向tableheader询问尺寸并获取其高度

JTable table;
int height = table.getTableHeader().getSize().height //JTable header is a JComponent

获取单元格的宽度,您必须从tableColumnModel

获取宽度
int column; //the index of desired column
int width = table.getTableColumnModel().getColumn(column).getWidth(); //as mentioned by @MadProgrammer

根据需要添加关于如何获取位置的提示

int xRel = table.getTableHeader().getX();
int column; //the index of desired column
for (int c = 0; c < column; c++){
    //adding all cell withds to come to your column
    x = x + table.getTableColumnModel().getColumn(c).getWidth();
} 

int yRel = table.getTableHeader().getY();

要获得绝对坐标,你必须询问你的框架,它在哪里,然后添加相对坐标

JFrame frame; //your frame
int xAbs = frame.getLocation().x + xRel;
int yAbs = frame.getLocation().y + yRel;