JTree创建了一个公司文件察看编辑器但是无法得到子叶点

starli22 2007-06-15 04:07:16
JTree创建了一个公司文件察看编辑器,根节点:公司资料;子节点:公司文件、客户信息两个子节点;在两个子节点中分别有:公司会议记录,公司发文,公司往来文件,海尔、联想、长虹。当用户打开每个节点时(如公司会议记录、公司发文等),在右边的文本杠中将显示该节点的文件内容。但是我点击公司文件的子节点时,却无法得到该节点内容。代码如下:
import java.awt.*;
import javax.swing.*;
import java.awt.Event.*;
import javax.swing.tree.*;
import javax.swing.event.*;
public class Shiyan15B extends JFrame implements TreeSelectionListener{
JTextArea area=new JTextArea(20,20);JTree tree=null;
public Shiyan15B(){
Container contentPane =getContentPane();
String []content={"公司资料","公司文件","客户信息"};
String []content2={"公司会议记录","公司发文"};
String []content3={"海尔","联想","长虹"};
DefaultMutableTreeNode treeNode []=new DefaultMutableTreeNode [content.length];
DefaultMutableTreeNode leafNode []=new DefaultMutableTreeNode[content2.length+content3.length];
for(int i=0;i<content.length;i++){
treeNode[i]=new DefaultMutableTreeNode(content[i]);
if(i!=0)
treeNode[0].add(treeNode[i]);
}
for(int i=0;i<content2.length;i++){
leafNode[i]=new DefaultMutableTreeNode(content2[i]);
treeNode[1].add(leafNode[i]);
}
for(int i=2;i<2+content3.length;i++){
leafNode[i]=
new DefaultMutableTreeNode(content3[i-2]);
treeNode[2].add(leafNode[i]);
}
tree=new JTree(treeNode[0]);
JScrollPane scrollpane=new JScrollPane(area);
JSplitPane splitpane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
true,tree,scrollpane);
tree.addTreeSelectionListener(this);
contentPane.add(splitpane);
pack();
setVisible(true);setBounds(70,80,200,300);

}
public void valueChanged(TreeSelectionEvent e){
if(e.getSource()==tree){
DefaultMutableTreeNode node=(DefaultMutableTreeNode)
tree.getLastSelectedPathComponent();
if(node.isLeaf()){
String str=node.toString();
if(str.equals("content2[0]"))
area.setText(str+":这里公司的会议记录!");
else if(str.equals("content2[1]"))
area.setText(str+":这是公司法文");
else if(str.equals("content3[0]"))
area.setText(str+":海尔公司");
else if(str.equals("content3[1]"))
area.setText(str+":联想公司");
else if(str.equals("content3[2]"))
area.setText(str+":长虹公司");
}
else{
area.setText(node.getUserObject().toString());
}
}


}
public static void main(String[] args) {
new Shiyan15B();


}

}
...全文
213 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
raulchenbest 2007-06-15
  • 打赏
  • 举报
回复
1.
if(str.equals(content2[0]))
if(str.equals("content2[0]"))
2.
String []content={"公司资料","公司文件","客户信息"};
String []content2={"公司会议记录","公司发文"};
String []content3={"海尔","联想","长虹"};
这个定义在构造函数外面
3.请结帖
starli22 2007-06-15
  • 打赏
  • 举报
回复
来回的看了三次,都看不出那里不同,算我眼拙.
raulchenbest 2007-06-15
  • 打赏
  • 举报
回复
仔细点看啊
starli22 2007-06-15
  • 打赏
  • 举报
回复
三楼的你的代码是不是跟我的一样的啊,我看不出有什么不同啊,可是你的可以,我的还是不可以啊。
真的很小奚 2007-06-15
  • 打赏
  • 举报
回复
好象没我什么事了
raulchenbest 2007-06-15
  • 打赏
  • 举报
回复
import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTextArea;
import javax.swing.JTree;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.tree.DefaultMutableTreeNode;
public class Shiyan15B extends JFrame implements TreeSelectionListener{
JTextArea area=new JTextArea(20,20);
JTree tree=null;
String []content={"公司资料","公司文件","客户信息"};
String []content2={"公司会议记录","公司发文"};
String []content3={"海尔","联想","长虹"};
public Shiyan15B(){
Container contentPane =getContentPane();

DefaultMutableTreeNode treeNode []=new DefaultMutableTreeNode [content.length];
DefaultMutableTreeNode leafNode []=new DefaultMutableTreeNode[content2.length+content3.length];
for(int i=0;i<content.length;i++){
treeNode[i]=new DefaultMutableTreeNode(content[i]);
if(i!=0)
treeNode[0].add(treeNode[i]);
}
for(int i=0;i<content2.length;i++){
leafNode[i]=new DefaultMutableTreeNode(content2[i]);
treeNode[1].add(leafNode[i]);
}
for(int i=2;i<2+content3.length;i++){
leafNode[i]=
new DefaultMutableTreeNode(content3[i-2]);
treeNode[2].add(leafNode[i]);
}
tree=new JTree(treeNode[0]);
JScrollPane scrollpane=new JScrollPane(area);
JSplitPane splitpane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
true,tree,scrollpane);
tree.addTreeSelectionListener(this);
contentPane.add(splitpane);
pack();
setVisible(true);setBounds(70,80,200,300);

}
public void valueChanged(TreeSelectionEvent e){
if(e.getSource()==tree){
DefaultMutableTreeNode node=(DefaultMutableTreeNode)
tree.getLastSelectedPathComponent();
if(node.isLeaf()){
String str=node.toString();
if(str.equals(content2[0]))
area.setText(str+":这里公司的会议记录!");
else if(str.equals(content2[1]))
area.setText(str+":这是公司法文");
else if(str.equals(content3[0]))
area.setText(str+":海尔公司");
else if(str.equals(content3[1]))
area.setText(str+":联想公司");
else if(str.equals(content3[2]))
area.setText(str+":长虹公司");
}
else{
area.setText(node.getUserObject().toString());
}
}


}
public static void main(String[] args) {
new Shiyan15B();


}

}
zhuokai 2007-06-15
  • 打赏
  • 举报
回复
import java.awt.*;
import javax.swing.*;
import java.awt.Event.*;
import javax.swing.tree.*;
import javax.swing.event.*;

public class Shiyan15B extends JFrame implements TreeSelectionListener
{
JTextArea area = new JTextArea(20, 20);

JTree tree = null;

public Shiyan15B()
{
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setAlwaysOnTop(true);
Container contentPane = getContentPane();
String[] content =
{ "公司資料", "公司文件", "客戶信息" };
String[] content2 =
{ "公司會議紀錄", "公司發文" };
String[] content3 =
{ "12", "23", "34" };
DefaultMutableTreeNode treeNode[] = new DefaultMutableTreeNode[content.length];
DefaultMutableTreeNode leafNode[] = new DefaultMutableTreeNode[content2.length + content3.length];
for (int i = 0; i < content.length; i++)
{
treeNode[i] = new DefaultMutableTreeNode(content[i]);
if (i != 0)
treeNode[0].add(treeNode[i]);
}
for (int i = 0; i < content2.length; i++)
{
leafNode[i] = new DefaultMutableTreeNode(content2[i]);
treeNode[1].add(leafNode[i]);
}
for (int i = 2; i < 2 + content3.length; i++)
{
leafNode[i] = new DefaultMutableTreeNode(content3[i - 2]);
treeNode[2].add(leafNode[i]);
}
tree = new JTree(treeNode[0]);
JScrollPane scrollpane = new JScrollPane(area);
JSplitPane splitpane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, tree, scrollpane);
tree.addTreeSelectionListener(this);
contentPane.add(splitpane);
pack();
setVisible(true);
setBounds(70, 80, 200, 300);

}

public void valueChanged(TreeSelectionEvent e)
{
System.out.println(e.getSource());
if (e.getSource() == tree)
{
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
System.out.println(node);
System.out.println(node.isLeaf());
if (node.isLeaf())
{
String str = node.toString();
System.err.println(str);
area.setText(str+"\n");
} else
{
area.setText(node.getUserObject().toString() + "\n");
}
}

}

public static void main(String[] args)
{
new Shiyan15B();

}

}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧