Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.149.251.155] |
|
Сообщ.
#1
,
|
|
|
import java.awt.Component; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableModel; public class JTablePackSample { public static void packColumns(JTable table) { for (int i = 0, columnCount = table.getColumnCount(); i < columnCount; i++) { TableCellRenderer renderer = table.getDefaultRenderer( table.getModel().getColumnClass(i) ); int maxWidth = 0; for (int j = 0, rowCount = table.getRowCount(); j < rowCount; j++) { Component component = renderer.getTableCellRendererComponent( table, table.getValueAt(j, i), true, true, j, i ); maxWidth = Math.max( maxWidth, component.getPreferredSize().width ); } TableColumn column = table.getColumnModel().getColumn(i); column.setMinWidth( maxWidth + table.getIntercellSpacing().width ); } } public static void main(String[] args) { TableModel tableModel = new DefaultTableModel( new String[][] { { "abc", "abcdefg", "abcdefghijk" }, { "abcdefghijklmno", "absdefghi", "abc" }, { "abcde", "abcdefghijklmnopqrstuvwxyz", "abcdefgjijklmn" }, }, new String[] { "a", "b", "c" } ); JTable table = new JTable(tableModel); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); packColumns(table); JScrollPane tableScrollPane = new JScrollPane(table); JFrame frame = new JFrame(); frame.setContentPane(tableScrollPane); frame.setSize(512, 384); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } |