是否可以在其单元格渲染器中设置JTable列的宽度?我试过下面的代码,但它似乎什么都不做。单元格渲染器设置列宽
//in main class where table defined;
table.getColumnModel().getColumn(0).setCellRenderer(renderer);
//in renderer class;
setSize(10, getPreferredSize().height);
是否可以在其单元格渲染器中设置JTable列的宽度?我试过下面的代码,但它似乎什么都不做。单元格渲染器设置列宽
//in main class where table defined;
table.getColumnModel().getColumn(0).setCellRenderer(renderer);
//in renderer class;
setSize(10, getPreferredSize().height);
1)其可以设置JTable Column's
宽度此(非常简单的)方式
TableColumnModel tcm = myTable.getColumnModel();
tcm.getColumn(0).setPreferredWidth(int);
2)I表明不这样做内部TableRenderer
,
因为我不每次渲染器被触发时,都看不到重绘原因
,并从你的代码,你张贴在这里不适合我真的不清楚是什么/如何/在哪里/为什么
其实我现在使用这个方法设置widht,但是我有大约20多个表totaly使用这个通用的渲染器。这个渲染器设置了相关表的行号。我想知道如果我可以设置它的宽度这是所有这些表格的通用位置。或者任何其他方法来集中设置此列宽度。 – cacert
试图避免这种情况,因为Renderer从很多事件中工作并重新绘制TableCell,有两种方法1)通过计算TableCell中的max_lengh和每个TableColumn的separatelly来计算TableColumn的widht 2)手动编写代码,其中setPreferredSize为每个TableColumns, 3)仅在开始时调用此代码,然后通过(从某些内置的)刷新 – mKorbel
谢谢你的说服性和简单的解释。 – cacert
没有,不要:不要一次换呼叫目标的状态(getXXCellRendererComponent)方面的所有参数严格只读 – kleopatra