help me plzzzzzzzzz
import java.awt.BorderLayout;
> > import java.awt.Component;
> > import java.util.EventObject;
> >
> > import javax.swing.JFrame;
> > import javax.swing.JScrollPane;
> > import javax.swing.JTable;
> > import javax.swing.event.CellEditorListener;
> > import javax.swing.table.TableCellEditor;
> > import javax.swing.table.TableCellRenderer;
> >
> > class TableRenderer extends JFrame {
> >TableRenderer() {
> > JTable tbl = new JTable(5, 5);
> > JScrollPane scroll = new JScrollPane(tbl);
> > getContentPane().add(scroll, BorderLayout.CENTER);
> >
> > tbl.getColumnModel().getColumn(0).setCellRenderer(new
> > TblRenderer());
> > tbl.getColumnModel().getColumn(0).setCellEditor(new
> > ScrollEditor());
> > tbl.setRowHeight(50);
> >}
> >public static void main(String[] args) {
> > JFrame f = new TableRenderer();
> > f.setDefaultCloseOperation(EXIT_ON_CLOSE);
> > f.pack();
> > f.setVisible(true);
> >}
> >class TblRenderer extends JScrollPane implements TableCellRenderer {
> > TblRenderer() {
> > setViewportView(getTable());
> > }
> > public Component getTableCellRendererComponent(JTable table,
> >Object value, boolean isSelected, boolean hasFocus, int
> > row,
> >int column) {
> > return this;
> > }
> >}
> >class ScrollEditor extends JScrollPane implements TableCellEditor {
> > ScrollEditor() {
> > setViewportView(getTable());
> > }
> > 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 true;}
> > public boolean shouldSelectCell(EventObject anEvent) {return true;}
> > public void addCellEditorListener(CellEditorListener l) {}
> > public void removeCellEditorListener(CellEditorListener l) {}
> >}
> >
> >private static JTable getTable() {
> > String header[] = { "Col1", "Col2", "Col3" };
> > Object data[][] = new Object[6][header.length];
> > for (int i = 0; i < data.length; i++) {
> > for (int j = 0; j < data.length; j++) {
> >data[j] = new Integer(i + j);
> > }
> > }
> > return new JTable(data, header);
> >}
> > }
hi,
i m using this code to create table inside cell of jtable.
i wans to add dynamic data to the jtables inside the cell of the parent jtable each having different data how can i do it plz help me.
# 2
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
{
static int j=0,i=0;
int count;
JTable table=null;
String sell[]=new String[]{"Sell EUR\n1.33","Sell EUR\n2.33","Sell EUR\n3.44","SellUSD\n1.33",
"Sell EUR\n1.33","Sell EUR\n2.33","Sell EUR\n3.44","SellUSD\n1.33","Sell EUR\n1.33","Sell EUR\n2.33"};
String buy[]=new String[]{"BUY EUR\n1.22","Buy EUR\n1.33","Buy EUR\n6.55","Buy USD\n2.11","BUY EUR\n1.22","Buy EUR\n1.33","Buy EUR\n6.55","Buy USD\n2.11",
"BUY EUR\n1.22","Buy EUR\n1.33"};
String s1[]=new String[120];
String s2[]=new String[120];
/*String sellbuy[][]=new String[][] {{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},
{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},
{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},
{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},
{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},
{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"},{"Sell EUR\n1.33","BUY EUR\n1.22"}};*/
Tableex() //This is my main class for main table//
{
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(i=0;i<3;i++)
{
t1.getColumnModel().getColumn(i).setCellRenderer(new TbiRenderer()); //here i m applyin tablecellrenderer for renderring//
count=t1.getRowCount();
//System.out.println(count);
//t1.getColumnModel().getColumn(i).setCellEditor(new ScrollEditor());
//int x=0;
for(j=0;j<count;j++)
{//here i am counting the rows in particular columns and calling constuctor for TbiRenderer class.
//t1.getColumnModel().getColumn(i).setCellRenderer(new TbiRenderer());
s1[j]=sell[j];
s2[j]=buy[j];
TbiRenderer tbi=new TbiRenderer();
//t1.setValueAt(tbi,j,i);
}
}
}
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()
{
//System.out.println("x");
DefaultTableModel dm = new DefaultTableModel()
{
public Class getColumnClass(int columnIndex)
{
return String.class;
}
};
//int x=0,y=0;
//System.out.println(i);
//System.out.println(j);
dm.setDataVector(new Object[][]{{s1,s2[j]}},new Object[]{"",""});
String sell=s1[j];
String buy=s2[j];
System.out.println(s1[j]);
System.out.println(s2[j]);
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();
//int x=table.getRowCount();
setViewportView(table);
//System.out.println(x);
}
public Component getTableCellRendererComponent(JTable table,Object value,boolean isSelected,boolean hasFocus,int j,int i)
{
System.out.println((String)value);
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;
}}>