How to create a JTree from DefaultTableModel?
Dear friends:
I have a DefaultTableModel in following code, I can create a JTable from this DefaultTableModel , But I hope to create a JTree from this DefaultTableModel also, How can I do it?
I tried a lot of way to use
myTree= new JTree(model.addRow(rowData));
etc to create a JTree, but fails, what is wrong?
Any suggestion?
Thanks
sunny
package com.com;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTree;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.DefaultTableModel;
publicclass ModelJTable0extends JPanel{
protected DefaultTableModel model;
protected JTable tbl1, tbl2;
JTree myTree;
protectedString[] columnNames ={
"First Name",
"Last Name",
"Sport",
"# of Years",
"Vegetarian"};
protected Object[][] data ={
{"Socrates","","469-399 B.C."},
{"Thomas","Aquinas","1225-1274"},
{"Soren","Kierkegaard","1813-1855"},
{"Immanuel","Kant","1724-1804"},
{"Friedrich","Nietzsche","1844-1900"},
{"Hannah","Arendt","1906-1975"}};
public ModelJTable0(){
super();
model =new DefaultTableModel();
for (int i = 0; i < columnNames.length; i++ ){
model.addColumn(columnNames[i]);
}
for (int i = 0; i < data.length; i++ ){
model.addRow(data[i]);
}
tbl1 =new JTable(model);
tbl2 =new JTable(model);
myTree=new JTree(model.addRow(rowData));
JButton addButton =new JButton("Add");
addButton.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent event){
String[] philosopher ={"","",""};
model.addRow(philosopher);
}
});
JButton removeButton =new JButton("Remove");
removeButton.addActionListener(new ActionListener(){
publicvoid actionPerformed(ActionEvent event){
model.removeRow(tbl1.getSelectedRow());
}
});
JPanel inputPanel =new JPanel();
inputPanel.add(addButton);
inputPanel.add(removeButton);
JScrollPane scr1 =new JScrollPane(tbl1);
JScrollPane scr2 =new JScrollPane(tbl2);
JPanel pnl =new JPanel();
pnl.setMinimumSize(new Dimension(200,300));
tbl1.getSelectionModel().addListSelectionListener(new ListSelectionListener()
{
publicvoid valueChanged(ListSelectionEvent lse)
{
if (tbl1.getSelectedRow()!=-1)
tbl2.clearSelection();
//revalidate();
}
}
);
tbl2.getSelectionModel().addListSelectionListener(new ListSelectionListener()
{
publicvoid valueChanged(ListSelectionEvent lse)
{
if (tbl2.getSelectedRow()!=-1)
tbl1.clearSelection();
//revalidate();
}
}
);
//pnl.setLayout(new FlowLayout());
pnl.setLayout(new BorderLayout());
pnl.add(scr1, BorderLayout.WEST);
pnl.add(scr2, BorderLayout.CENTER);
pnl.add(inputPanel, BorderLayout.NORTH);
this.add(pnl);
}
publicstaticvoid main(String args[]){
ModelJTable0 c =new ModelJTable0();
JFrame frm =new JFrame();
frm.setSize(920,300);
frm.getContentPane().add(c);
frm.setVisible(true);
}
}
sunnymanman
Message was edited by:
sunnymanman
Message was edited by:
sunnymanman

