Tôi muốn thêm một số cột vào một bảng (Swing JTable). Một số người trong số họ sẽ có kích thước mặc định (ví dụ: 250), một số khác sẽ bị ẩn (vì vậy kích thước của chúng sẽ là 0). Tôi sử dụng mã này:JTable ẩn và hiển thị các cột
model = new DefaultTableModel();
table = new JTable(model);
setAutoResizeMode(AUTO_RESIZE_OFF);
for (int i = 1; i < COLUMN_NAMES.length; i++) {
model.addColumn(COLUMN_NAMES[i]);
if (show[i]) show(index);
else hide(index);
}
........
private void hide(int index) {
TableColumn column = getColumnModel().getColumn(index);
column.setMinWidth(0);
column.setMaxWidth(0);
column.setWidth(0);
column.setPreferredWidth(0);
doLayout();
}
private void show(int index) {
final int width = 250;
column.setMinWidth(15);
column.setMaxWidth(width);
column.setWidth(width);
column.setPreferredWidth(width);
doLayout();
}
vấn đề là khi bảng được hiển thị, tất cả các cột được hiển thị (không có ẩn) và kích thước của chúng không phải là 250 nhưng chúng có cùng kích thước.
Làm cách nào để có được hiệu ứng mong muốn?
Vui lòng xem câu trả lời của Swing-genius StanislavL tại đây: [hide-column-in-jtable-temporary] (http://stackoverflow.com/questions/5270032/hide-column-in-jtable-temporary) –
liên kết tốt đẹp :) +1 – mprabhat