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


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

help me regarding jtable

From "martinmoore" <martinmoore@THRWHITE.remove-dii-this>
Subject help me regarding jtable
Message-ID <1175530519.212752.171130@y80g2000hsf.googlegroups.com> (permalink)
Newsgroups comp.lang.java.gui
Date 2011-04-27 15:32 +0000
Organization TDS.net

Show all headers | View raw


  To: comp.lang.java.gui
import java.awt.BorderLayout;
import java.awt.Component;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
import javax.swing.event.CellEditorListener;
import javax.swing.table.TableCellEditor;
import java.util.EventObject;
import java.awt.*;
import javax.swing.table.DefaultTableColumnModel;
import javax.swing.JComponent.*;
import javax.swing.table.TableColumn;
import javax.swing.table.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.border.EmptyBorder;
class Tableex extends JFrame
{
	Tableex()
	{
		JTable t1=new JTable(10,3);
		int height=50;
		t1.setRowHeight(t1.getRowHeight()+height);
		JScrollPane p=new JScrollPane(t1);
		getContentPane().add(p,BorderLayout.CENTER);
		for(int i=0;i<3;i++)
		{
		t1.getColumnModel().getColumn(i).setCellRenderer(new TbiRenderer());
		t1.getColumnModel().getColumn(i).setCellEditor(new ScrollEditor());
		int count=t1.getRowCount();
		for(int j=0;j<count;j++)
			{
			t1.getColumnModel().getColumn(i).setCellRenderer(new
TbiRenderer());
			t1.getColumnModel().getColumn(i).setCellEditor(new ScrollEditor());
			}
		}
	}
	public static void main(String[] args)
	{
		JFrame f=new Tableex();
		f.setDefaultCloseOperation(EXIT_ON_CLOSE);
		f.pack();
		f.setVisible(true);
	}
	class TbiRenderer extends JScrollPane implements TableCellRenderer
	{
		TbiRenderer()
		{

			DefaultTableModel dm = new DefaultTableModel()
				{
				public Class getColumnClass(int columnIndex)
					{
					return String.class;
					}
					};
					dm.setDataVector(new Object[][]{{"a\na","b\nb"}},new Object[]
{"",""});
					JTable table = new JTable( dm ) {
					protected JTableHeader createDefaultTableHeader()
						{
						return new GroupableTableHeader(columnModel);
						}
					};
					int lines = 2;
    				table.setRowHeight(table.getRowHeight() * lines);
					int height=40;
					table.setRowHeight(table.getRowHeight()+height);
					table.setDefaultRenderer(String.class, new
MultiLineCellRenderer());
					TableColumnModel cm = table.getColumnModel();
					ColumnGroup g_2nd = new ColumnGroup("1st");
					g_2nd.add(cm.getColumn(0));
					g_2nd.add(cm.getColumn(1));
					GroupableTableHeader header =
(GroupableTableHeader)table.getTableHeader();
					header.addColumnGroup(g_2nd);
					header.revalidate();
					setViewportView(table);
					}
			public Component getTableCellRendererComponent(	JTable table,Object
value,boolean isSelected,boolean hasFocus,int row,int column)
			{
			return this;
			}
	}
	class ScrollEditor extends JScrollPane  implements TableCellEditor
		{
                ScrollEditor()
				{
					DefaultTableModel dm = new DefaultTableModel();
					dm.setDataVector(new Object[][]{{"a\na","b\nb"}},new Object[]
{"",""});
					JTable table = new JTable( dm ) {
					protected JTableHeader createDefaultTableHeader() {
					return new GroupableTableHeader(columnModel);
					}
					};
					int lines = 1;
  					table.setRowHeight(table.getRowHeight() * lines);
					int height=40;
					table.setRowHeight(table.getRowHeight()+height);
					TableColumnModel cm = table.getColumnModel();
					ColumnGroup g_2nd = new ColumnGroup("1st");
					g_2nd.add(cm.getColumn(0));
					g_2nd.add(cm.getColumn(1));
				    GroupableTableHeader header =
(GroupableTableHeader)table.getTableHeader();
					header.addColumnGroup(g_2nd);
					header.revalidate();
					setViewportView(table);
					}
                public Component getTableCellEditorComponent(JTable
table,
                                Object value, boolean isSelected, int
row, int column)
				{
                        return this;
                }

                public void cancelCellEditing() {}
                public boolean stopCellEditing() {return true;}
                public Object getCellEditorValue() {return null;}
                public boolean isCellEditable(EventObject anEvent)
{return false;}
                public boolean shouldSelectCell(EventObject anEvent)
{return true;}
                public void addCellEditorListener(CellEditorListener
l) {}
                public void
removeCellEditorListener(CellEditorListener l) {}
        }

       }




class MultiLineCellRenderer extends JTextArea implements
TableCellRenderer {

  public MultiLineCellRenderer() {
    setLineWrap(true);
    setWrapStyleWord(true);
    setOpaque(true);
  }

  public Component getTableCellRendererComponent(JTable table, Object
value,
      boolean isSelected, boolean hasFocus, int row, int column) {
   	 if (isSelected) {
      setForeground(table.getSelectionForeground());
      setBackground(table.getSelectionBackground());
    } else {
      setForeground(table.getForeground());
      setBackground(table.getBackground());
    }
    setFont(table.getFont());
    if (hasFocus) {
 
setBorder(UIManager.getBorder("Table.focusCellHighlightBorder"));
      if (table.isCellEditable(row, column)) {
 
setForeground(UIManager.getColor("Table.focusCellForeground"));
 
setBackground(UIManager.getColor("Table.focusCellBackground"));
      }
    } else {
      setBorder(new EmptyBorder(1, 2, 1, 2));
    }
    setText((value == null) ? "" : value.toString());
    return this;
  }
}




i m using this code to generate jtable inside the cell of another
jtable my problem is that i wanst to add different datas dynamically
into the all jtables .plz help me soon.

---
 * 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 | NextNext in thread | Find similar | Unroll thread


Thread

help me regarding jtable "martinmoore" <martinmoore@THRWHITE.remove-dii-this> - 2011-04-27 15:32 +0000
  Re: help me regarding jta "Marc" <marc@THRWHITE.remove-dii-this> - 2011-04-27 15:33 +0000

csiph-web