Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.gui > #1373
| 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 |
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 | Next — Next in thread | Find similar | Unroll 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