Package shared.table

Source Code of shared.table.JTableHelper

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package shared.table;

import java.awt.Component;
import java.awt.Rectangle;

import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.UIManager;

import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;

/**
* JTableHelper
*
* Created on 03.11.2008, 20:58:32
*
*  Copyright (C) 03.11.2008  <reiner>
*
* @author reiner
*
*  This program is free software; you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation; either version 2 of the License, or
*  (at your option) any later version.
*
*  This program is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with this program; if not, write to the Free Software
*  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
*/


public final class JTableHelper
{
    public static void selectRow(JTable table, int row, boolean bScroll)
    {
    assert (row >= 0 && row < table.getRowCount());
    if (row >= 0 && row < table.getRowCount())
    {
      table.setRowSelectionInterval(row, row);
      if (bScroll)
      {
        Rectangle rect = table.getCellRect(row, 0, true);
        table.scrollRectToVisible(rect);
      }
    }
  }
 
    public static void setTableHeaderCellRenderer(TableColumn tableCol)
    {
    tableCol.setHeaderRenderer(new DefaultTableCellRenderer()
    {
      public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
      {
        if (table != null)
        {
                    // TableCellRenderer renderer = table.getTableHeader().getDefaultRenderer();
                    JComponent c = (JComponent)table.getTableHeader().getDefaultRenderer();
          setForeground(c.getForeground());
          setBackground(c.getBackground());
          setFont(c.getFont());
                    setBorder(UIManager.getBorder("TableHeader.cellBorder"));
          // setBorder(c.getBorder());
        }
        setText(value!= null ? value.toString() : "");
        // setBorder(UIManager.getBorder("TableHeader.cellBorder"));
        setHorizontalAlignment(JLabel.CENTER);
        return this;
      }
    });
    }
 
  public static void setTableHeaderCellRenderer(JTable table)
  {
    TableColumnModel colModel = table.getColumnModel();
    int i, anzahl = colModel.getColumnCount();
    for (i=0; i<anzahl; i++)
        setTableHeaderCellRenderer(colModel.getColumn(i));
  }

    public static void autoAdjustColWidths(JTable table)
    {
        int i, j, h;
        for (i=0; i<table.getColumnCount(); i++)
        {
            DefaultTableColumnModel colModel = (DefaultTableColumnModel)table.getColumnModel();
            TableColumn col = colModel.getColumn(i);
            int width = 4;
            TableCellRenderer renderer = col.getHeaderRenderer();
            if (renderer == null)
                renderer = table.getTableHeader().getDefaultRenderer();
            Component comp = renderer.getTableCellRendererComponent(table, col.getHeaderValue(), false, false, 0, i);
            width = comp.getPreferredSize().width + 4;
            for (j=0; j<table.getRowCount();j++)
            {
                if ((renderer = table.getCellRenderer(j, i)) == null)
                    table.getDefaultRenderer(String.class);
                if ((h = renderer.getTableCellRendererComponent(table, table.getValueAt(j, i), false, false, j, i).getPreferredSize().width + 4) > width)
                    width = h;
            }
            col.setPreferredWidth(width);
        }
    }
}
TOP

Related Classes of shared.table.JTableHelper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.