На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! Правила раздела Java FAQ
1. Данный раздел предназначен только для публикации готовых статей, с вопросами обращайтесь в соответствующие подразделы.
2. Все вопросы, связанные с ошибками или неточностями в представленных материалах направляйте модераторам персональным сообщением.
3. Все темы и сообщения в разделе премодерируются. Любое сообщение или тема будут доступны остальным участникам после одобрения модераторами.
Модераторы: dark_barker, wind
  
> Выравнивание ширины колонок таблицы, по отображаемым данным
    ExpandedWrap disabled
      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);
          }
          
      }
    1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script Execution time: 0,0860 ]   [ 14 queries used ]   [ Generated: 18.07.19, 17:59 GMT ]