2012-12-20 51 views
8

thể trùng lặp:
How to make a columns in JTable Invisible for Swing Java
How to hide a particlar column in DefaultTableModel from displaying it in table?Ẩn một cột trong JTable

Tôi cố gắng để nhập dữ liệu vào ba cột trong JTable, nhưng tôi muốn chỉ hiển thị hai cột. Trên thực tế, tôi muốn ẩn cột thứ ba, không phải bằng cách đặt chiều rộng thành 0, nhưng bằng bất kỳ phương pháp nào khác mà tôi có thể lấy dữ liệu từ cột bị ẩn trên sự kiện nhấp chuột.

Làm cách nào để ẩn cột theo cách này?

Tôi đang sử dụng đoạn mã sau:

try { 
    String Title[]= new String{"a","b","c"}; 
    Object obj= new Object[50][3]; 
    JTable table= new JTable(obj,title); 
    JScrollPane jsp= new JScrollPane(table); 
    add(jsp); 
} catch(Exception ex) { 
    ex.printStackTrace(); 
} 
+2

Bản sao có thể có của [Cách ẩn một cột trong DefaultTableModel khỏi hiển thị nó trong bảng?] (Http://stackoverflow.com/questions/12195973/how-to-hide-a-particlar-column-in-defaulttablemodel -from-display-it-in-table) hoặc [câu hỏi này] (http://stackoverflow.com/questions/10088853/could-not-set-the-column-width-to-zero-ie-not-made -column-invisible/10089138 # 10089138) hoặc [this one] (http://stackoverflow.com/questions/8371328/jtable-hide-and-show-columns) hoặc .. –

+1

xem xét [SwingX] (http: // swingx.java.net): hỗ trợ JXTable/TableColumnExt của nó trong/các cột hiển thị – kleopatra

+0

có thể trùng lặp [Cách tạo cột trong JTable Vô hình cho Swing Java] (http://stackoverflow.com/q/1492217/813853). –

Trả lời

24

Đặt tối thiểu Cột và chiều rộng tối đa là zero.

table.getColumnModel().getColumn(columnIndex).setMinWidth(0); 
table.getColumnModel().getColumn(columnIndex).setMaxWidth(0); 

Do liên kết được Andrew Thomson đề xuất trong phần nhận xét, bạn cũng có thể sử dụng removeColumn.

Từ javaDoc;

removeColumn

public void removeColumn(TableColumn aColumn) 

Loại bỏ aColumn từ mảng các cột của JTable này. Lưu ý: phương pháp này không không xóa cột dữ liệu khỏi mô hình; nó chỉ xóa TableColumn chịu trách nhiệm hiển thị nó. Tham số: aColumn - các TableColumn phải được loại bỏ

Tái bút: Nhưng tôi đã cá nhân sử dụng phương pháp tiếp cận đầu tiên để ẩn một cột trong JTable. Cảm ơn bạn đã sử dụng phương pháp removeColumn Tôi sẽ cố sử dụng phương pháp này từ giờ trở đi.

+0

@ALJI Mohamed xin vui lòng phục hồi câu trả lời của bạn ở đây, khá chính xác, và bỏ qua hành động sai của donw_voter – mKorbel

+1

Tôi thích phương pháp tiếp cận chiều rộng đặt. Mặc dù tôi cũng sẽ xem xét việc thực hiện un-resizable để tránh người dùng vô tình hiển thị nó: 'table.getColumnModel(). GetColumn (columnIndex) .setResizable (false);' – OLL

+0

Điều này thực sự giúp đặc biệt khi nhận id từ 'JTable' – Francisunoxx