Otomatik yeniden boyutlandırmayı KAPALI (setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
) olarak ayarlamanız gerekir, ancak sütunlarınızı yeniden boyutlandırmak için bir yardımcı yönteme de ihtiyacınız vardır.
Bu JTable uzanan özel bir sınıf içinde olduğunu, ancak aynı kolaylıkla varolan JTable başvurabilirsiniz: Eğer bir satır eklediğinizde
public void resizeColumnWidth() {
int cumulativeActual = 0;
int padding = 15;
for (int columnIndex = 0; columnIndex < getColumnCount(); columnIndex++) {
int width = 50; // Min width
TableColumn column = columnModel.getColumn(columnIndex);
for (int row = 0; row < getRowCount(); row++) {
TableCellRenderer renderer = getCellRenderer(row, columnIndex);
Component comp = prepareRenderer(renderer, row, columnIndex);
width = Math.max(comp.getPreferredSize().width + padding, width);
}
if (columnIndex < getColumnCount() - 1) {
column.setPreferredWidth(width);
cumulativeActual += column.getWidth();
} else { //LAST COLUMN
//Use the parent's (viewPort) width and subtract the previous columbs actual widths.
column.setPreferredWidth((int) getParent().getSize().getWidth() - cumulativeActual);
}
}
}
Çağrı resizeColumnWidth(). [Tablo sütun Ayar] (http://tips4java.wordpress.com:
public MyCustomJTable() {
super();
addHierarchyBoundsListener(new HierarchyBoundsAdapter() {
@Override
public void ancestorResized(HierarchyEvent e) {
super.ancestorResized(e);
resizeColumnWidth();
}
});
setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
}
Bu belgesine bakınız: Tablo kendisi yeniden boyutlandırıldığında sütunları da yeniden boyutlandırılır böylece
İsteğe bağlı olarak masaya bir dinleyici ekleyin/2008/11/10/sofra sütun ayarlayıcı /) –