Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.gui > #453

Re: Setting table row hei

From "noa" <noa@THRWHITE.remove-dii-this>
Subject Re: Setting table row hei
Message-ID <1166621857.102513.143040@48g2000cwx.googlegroups.com> (permalink)
Newsgroups comp.lang.java.gui
References <1166608374.989165.9640@t46g2000cwa.googlegroups.com><116
Date 2011-04-27 15:27 +0000
Organization TDS.net

Show all headers | View raw


  To: comp.lang.java.gui

Andrew Thompson wrote:
> noah.drach@gmail.com wrote:
> > I have a table that all it's cells are rendered, I want to set the row
> > height accoding the height of the tallest component.
> > and I also want the component height to be set automatically after I
> > set it's width to the column width.
>
> Change the '.' to a comma in line 243 of the source,
> that should sort the problem.  In case it does not,
> you might also..
>
> > any ideas?
>
> Show us an SSCCE* that fails to correctly size the
> column headers.
> <http://www.physci.org/codes/sscce>
>
> Andrew T.

Here, notice that the end of a string is marked "end of text"
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextPane;
import javax.swing.table.AbstractTableModel;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;

public class TableDemo extends JPanel {

    public TableDemo() {
        super(new GridLayout(1,0));

        JTable table = new JTable(new MyTableModel());

        // Set renderers
        TableColumn col = table.getColumnModel().getColumn(0);
        col.setCellRenderer(new MyRenderer());

        col = table.getColumnModel().getColumn(1);
        col.setCellRenderer(new MyRenderer());

        col = table.getColumnModel().getColumn(2);
        col.setCellRenderer(new MyRenderer());

        table.setPreferredScrollableViewportSize(new Dimension(500,
70));

        //Create the scroll pane and add the table to it.
        JScrollPane scrollPane = new JScrollPane(table);

        //Add the scroll pane to this panel.
        add(scrollPane);
    }
    class MyRenderer extends  DefaultTableCellRenderer {
        private JTextPane component = new JTextPane();
        public MyRenderer() {
            component.setOpaque(true);
        }

        public Component getTableCellRendererComponent(JTable table,
                                                       Object value,
                                                       boolean
isSelected,
                                                       boolean
hasFocus,
                                                       int row, int
column) {


super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);

            component.setText((String)value);

            // Set the size
            TableColumnModel columnModel = table.getColumnModel();

            component.setMinimumSize(new
Dimension(columnModel.getColumn(column).getWidth(),
(int)component.getPreferredSize().getHeight()));
            component.setMaximumSize(new
Dimension(columnModel.getColumn(column).getWidth(),
(int)component.getPreferredSize().getHeight()));


            if (component.getPreferredSize().getHeight() >
table.getRowHeight(row)){
                table.setRowHeight(row,
(int)component.getPreferredSize().getHeight());
            }

            return component;
        }
   }


    class MyTableModel extends AbstractTableModel {
        private String[] columnNames = {"First Name",
                                        "Last Name",
                                        "Sport",
                                        "# of Years",
                                        "Vegetarian"};
        private Object[][] data = {
            {"Mary\nMary end of text", "Campione blahblahblah
blahblahblahblah  blahblahblahblahblah  blahblahblahblahblah end of
text",
             "Snowboarding\nSnowboarding\nend of text", new Integer(5),
new Boolean(false)},
             {"Mary end of text", "Campione blahblahblah
blahblahblahblah  blahblahblahblahblah  blahblahblahblahblah
blahblahblahblahblah  blahblahblahblahblah  blahblahblahblahblah
blahblahblahblahblah  blahblahblahblahblah  blahblahblahblahblah
blahblahblahblahblah  blahblahblahblahblah  blahblahblahblahblah
blahblahblahblahblah end of text",

"Snowboarding\nSnowboarding\nSnowboarding\nSnowboarding\nSnowboarding\nSnowboarding\nSnowboarding\nend
of text", new Integer(5), new Boolean(false)}};

        public Object getValueAt(int row, int col) {
            return data[row][col];
        }

        public int getRowCount()  {
          return 2;
        }

        public int getColumnCount()  {
          return 5;
        }
   }

    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("TableDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Create and set up the content pane.
        TableDemo newContentPane = new TableDemo();
        newContentPane.setOpaque(true); //content panes must be opaque
        frame.setContentPane(newContentPane);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

---
 * Synchronet * The Whitehouse BBS --- whitehouse.hulds.com --- check it out free usenet!
--- Synchronet 3.15a-Win32 NewsLink 1.92
Time Warp of the Future BBS - telnet://time.synchro.net:24

Back to comp.lang.java.gui | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Setting table row height "noah.drach" <noah.drach@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
  Re: Setting table row hei "Andrew Thompson" <andrew.thompson@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
  Re: Setting table row hei "noa" <noa@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
    Re: Setting table row hei "Oliver Wong" <oliver.wong@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
      Re: Setting table row hei "noa" <noa@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
        Re: Setting table row hei "Oliver Wong" <oliver.wong@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
          Re: Setting table row hei "noa" <noa@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
            Re: Setting table row hei "Oliver Wong" <oliver.wong@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
              Re: Setting table row hei "noa" <noa@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
                Re: Setting table row hei "RedGrittyBrick" <redgrittybrick@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
                Re: Setting table row hei "noa" <noa@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
                Re: Setting table row hei "noa" <noa@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
                Re: Setting table row hei "Oliver Wong" <oliver.wong@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
  Re: Setting table row hei "noa" <noa@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000
  Re: Setting table row hei "noa" <noa@THRWHITE.remove-dii-this> - 2011-04-27 15:27 +0000

csiph-web