hi friends i am pradeep. i want to print a text file as a tree using swings .i wrote a code for that and i am getting only one node after the root node .so i am sending the code here .plz help me anybody .
here is the code :
import java.io.*;
import java.util.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import javax.swing.JScrollBar;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import javax.swing.JTree;
import javax.swing.JButton;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.event.TreeSelectionListener;
class Hierarchy extends JFrame
{
public static void main(String args[])
{
JFrame frame = new JFrame("DefaultMutableTreeNode Example");
JButton b=new JButton("search");
//JButton exit=new JButton("Exit");
JTextField t1,textField;
JTree tree=new JTree();
Container container = frame.getContentPane();
JTextArea textArea=new JTextArea();
JScrollBar hbar = new JScrollBar(JScrollBar.HORIZONTAL, 30, 20, 0, 500);
JScrollBar vbar = new JScrollBar(JScrollBar.VERTICAL, 30, 40, 0, 400);
t1=new JTextField(15);
textField = new JTextField();
JPanel panel=new JPanel();
panel.add(t1);
panel.add(b);
panel.add(textArea);
//panel.add(exit);
frame.add(panel);
frame.add(hbar, BorderLayout.SOUTH);
frame.add(vbar, BorderLayout.EAST);
//frame.add(jsp);
//frame.add(textArea);
container.add(panel,BorderLayout.NORTH);
try {
String item_no;
String input = "";
File fin=new File("C:\\Pradeep\\u.txt");
FileReader fr=new FileReader(fin);
BufferedReader br = new BufferedReader(fr);
DefaultMutableTreeNode parent;
DefaultMutableTreeNode node1 = null;
DefaultMutableTreeNode node2 = null;
DefaultMutableTreeNode node3 = null;
DefaultMutableTreeNode node4 = null;
parent = new DefaultMutableTreeNode("UNSPSC");
while((input = br.readLine()) != null)
{
StringTokenizer st = new StringTokenizer(input," ");
System.out.println(" String "+ input);
item_no = st.nextToken();
System.out.println(" item_no -> " + item_no);
if(item_no.substring(2).equals("000000"))
{
node1 = new DefaultMutableTreeNode(input);
System.out.println(" 1 root node"+ input);
parent.add(node1);
tree = new JTree(parent);
frame.add(tree);
}
else if(item_no.substring(4).equals("0000"))
{
node2 = new DefaultMutableTreeNode(input);
System.out.println(" 2 root node" + input);
node1.add(node2);
tree = new JTree(node1);
frame.add(tree);
}
else if(item_no.substring(6).equals("00"))
{
node3 = new DefaultMutableTreeNode(input);
System.out.println(" 3 root node"+ input);
node2.add(node3);
tree = new JTree(node2);
frame.add(tree);
}
else
{
node4 = new DefaultMutableTreeNode(input);
System.out.println(" 4 root node"+ input);
node3.add(node4);
tree = new JTree(node3);
frame.add(tree);
}
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
splitPane.setLeftComponent(tree);
splitPane.setRightComponent(textField);
container.add(splitPane, BorderLayout.SOUTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOS E);
frame.getRootPane().setWindowDecorationStyle(JRoot Pane.PLAIN_DIALOG);
frame.add(splitPane);
frame.setSize(700,700);
frame.setVisible(true);
}
}catch(IOException e) { System.out.println(e);}
}
}
so kindly please help me in this problem .i hope i ll get replay .


