如何获得jTree所有节点的名称,并把它放到动态数组里 各位请指点一下:我有一个树根节点root下有3层,如何获得每一层的所有节点名称,并把同一层的节点名称放到一个动态数组里有类似的程序参考也可谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package ok;import java.awt.Dimension;import javax.swing.JFrame;import javax.swing.JPanel;import java.awt.Rectangle;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.JTree;import javax.swing.JButton;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;public class Frame2 extends JFrame { JPanel contentPane; DefaultMutableTreeNode gen=new DefaultMutableTreeNode("根"); JTree jTree1 = new JTree(gen); JButton jButton1 = new JButton(); public Frame2() { try { setDefaultCloseOperation(EXIT_ON_CLOSE); jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } /** * Component initialization. * * @throws java.lang.Exception */ private void jbInit() throws Exception { contentPane = (JPanel) getContentPane(); contentPane.setLayout(null); setSize(new Dimension(400, 300)); setTitle("Frame Title"); jTree1.setBounds(new Rectangle(84, 40, 222, 167)); jButton1.setBounds(new Rectangle(137, 238, 129, 44)); jButton1.setText("jButton1"); jButton1.addActionListener(new Frame2_jButton1_actionAdapter(this)); contentPane.add(jTree1); contentPane.add(jButton1); DefaultMutableTreeNode zhi1=new DefaultMutableTreeNode("枝1"); DefaultMutableTreeNode zhi2=new DefaultMutableTreeNode("枝2"); DefaultMutableTreeNode zhi3=new DefaultMutableTreeNode("枝3"); DefaultMutableTreeNode ye1=new DefaultMutableTreeNode("叶1"); DefaultMutableTreeNode ye2=new DefaultMutableTreeNode("叶2"); DefaultMutableTreeNode ye3=new DefaultMutableTreeNode("叶3"); zhi1.add(ye1); zhi1.add(ye2); zhi1.add(ye3); DefaultMutableTreeNode ye4=new DefaultMutableTreeNode("叶4"); DefaultMutableTreeNode ye5=new DefaultMutableTreeNode("叶5"); DefaultMutableTreeNode ye6=new DefaultMutableTreeNode("叶6"); zhi2.add(ye4); zhi2.add(ye5); zhi2.add(ye6); gen.add(zhi1); gen.add(zhi2); gen.add(zhi3); } public void jButton1_actionPerformed(ActionEvent e) { DefaultMutableTreeNode gen=(DefaultMutableTreeNode)jTree1.getModel().getRoot(); ArrayList list=new ArrayList(); for (int i=0;i<gen.getChildCount();i++) { String[] str=new String[gen.getChildCount()]; for (int a=0;a<gen.getChildAt(i).getChildCount();a++) { str[a]=gen.getChildAt(i).getChildAt(a).toString(); } list.add(str); } for (int i=0;i<list.size();i++) { String[] str=(String[])list.get(i); System.out.println("第"+(i+1)+"层"); for (String a:str) { System.out.print(a+"\t"); } System.out.println(""); } }}class Frame2_jButton1_actionAdapter implements ActionListener { private Frame2 adaptee; Frame2_jButton1_actionAdapter(Frame2 adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed(e); }} 刚才的程序有问题 不好意思!package ok;import java.awt.Dimension;import javax.swing.JFrame;import javax.swing.JPanel;import java.awt.Rectangle;import javax.swing.tree.DefaultMutableTreeNode;import javax.swing.JTree;import javax.swing.JButton;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;public class Frame2 extends JFrame { JPanel contentPane; DefaultMutableTreeNode gen=new DefaultMutableTreeNode("根"); JTree jTree1 = new JTree(gen); JButton jButton1 = new JButton(); public Frame2() { try { setDefaultCloseOperation(EXIT_ON_CLOSE); jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } /** * Component initialization. * * @throws java.lang.Exception */ private void jbInit() throws Exception { contentPane = (JPanel) getContentPane(); contentPane.setLayout(null); setSize(new Dimension(400, 300)); setTitle("Frame Title"); jTree1.setBounds(new Rectangle(84, 40, 222, 167)); jButton1.setBounds(new Rectangle(137, 238, 129, 44)); jButton1.setText("jButton1"); jButton1.addActionListener(new Frame2_jButton1_actionAdapter(this)); contentPane.add(jTree1); contentPane.add(jButton1); DefaultMutableTreeNode zhi1=new DefaultMutableTreeNode("枝1"); DefaultMutableTreeNode zhi2=new DefaultMutableTreeNode("枝2"); DefaultMutableTreeNode zhi3=new DefaultMutableTreeNode("枝3"); DefaultMutableTreeNode ye1=new DefaultMutableTreeNode("叶1"); DefaultMutableTreeNode ye2=new DefaultMutableTreeNode("叶2"); DefaultMutableTreeNode ye3=new DefaultMutableTreeNode("叶3"); zhi1.add(ye1); zhi1.add(ye2); zhi1.add(ye3); DefaultMutableTreeNode ye4=new DefaultMutableTreeNode("叶4"); DefaultMutableTreeNode ye5=new DefaultMutableTreeNode("叶5"); DefaultMutableTreeNode ye6=new DefaultMutableTreeNode("叶6"); DefaultMutableTreeNode ye7=new DefaultMutableTreeNode("叶7"); zhi2.add(ye4); zhi2.add(ye5); zhi2.add(ye6); zhi2.add(ye7); gen.add(zhi1); gen.add(zhi2); gen.add(zhi3); } public void jButton1_actionPerformed(ActionEvent e) { DefaultMutableTreeNode gen=(DefaultMutableTreeNode)jTree1.getModel().getRoot(); ArrayList list=new ArrayList(); for (int i=0;i<gen.getChildCount();i++) { String[] str=new String[gen.getChildAt(i).getChildCount()]; for (int a=0;a<gen.getChildAt(i).getChildCount();a++) { str[a]=gen.getChildAt(i).getChildAt(a).toString(); } list.add(str); } for (int i=0;i<list.size();i++) { String[] str=(String[])list.get(i); System.out.println("第"+(i+1)+"层"); for (String a:str) { System.out.print(a+"\t"); } System.out.println(""); } }}class Frame2_jButton1_actionAdapter implements ActionListener { private Frame2 adaptee; Frame2_jButton1_actionAdapter(Frame2 adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.jButton1_actionPerformed(e); }} 谢谢!太好了,非常感谢joejoe1991 有个地方没看明白 for (String a:str) ------〉啥意思? { System.out.print(a+ "\t "); } for each 结构 和for循环差不多的。 jdb5新加的功能 哦,知道了,呵呵,谢谢我说怎么在jbuilder2005里编译错误哪,他的jdk1.4的 堆和栈在java中怎么存储的 唉。。。又一个菜鸟问题 请问我的代码什么地方错了?关于把一个二叉数用中根遍历。 Object 转到原来未知的类型 我的Applet不能在appletviewer下运行,却可以在IE下运行,为什么啊? 方法调用问题 求助,关于包引入的问题 关于package 的问题 Java中有没有“四舍五入”的运算方法? 这是一个广告! 学习java快两个月了,就是觉得什么也不会,愁死我了 到哪里下载log4j
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Rectangle;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.JTree;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;public class Frame2 extends JFrame {
JPanel contentPane;
DefaultMutableTreeNode gen=new DefaultMutableTreeNode("根");
JTree jTree1 = new JTree(gen);
JButton jButton1 = new JButton();
public Frame2() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
} /**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
jTree1.setBounds(new Rectangle(84, 40, 222, 167));
jButton1.setBounds(new Rectangle(137, 238, 129, 44));
jButton1.setText("jButton1");
jButton1.addActionListener(new Frame2_jButton1_actionAdapter(this));
contentPane.add(jTree1);
contentPane.add(jButton1); DefaultMutableTreeNode zhi1=new DefaultMutableTreeNode("枝1");
DefaultMutableTreeNode zhi2=new DefaultMutableTreeNode("枝2");
DefaultMutableTreeNode zhi3=new DefaultMutableTreeNode("枝3");
DefaultMutableTreeNode ye1=new DefaultMutableTreeNode("叶1");
DefaultMutableTreeNode ye2=new DefaultMutableTreeNode("叶2"); DefaultMutableTreeNode ye3=new DefaultMutableTreeNode("叶3");
zhi1.add(ye1);
zhi1.add(ye2);
zhi1.add(ye3); DefaultMutableTreeNode ye4=new DefaultMutableTreeNode("叶4");
DefaultMutableTreeNode ye5=new DefaultMutableTreeNode("叶5");
DefaultMutableTreeNode ye6=new DefaultMutableTreeNode("叶6");
zhi2.add(ye4);
zhi2.add(ye5);
zhi2.add(ye6); gen.add(zhi1);
gen.add(zhi2);
gen.add(zhi3);
} public void jButton1_actionPerformed(ActionEvent e) {
DefaultMutableTreeNode gen=(DefaultMutableTreeNode)jTree1.getModel().getRoot();
ArrayList list=new ArrayList();
for (int i=0;i<gen.getChildCount();i++)
{
String[] str=new String[gen.getChildCount()];
for (int a=0;a<gen.getChildAt(i).getChildCount();a++)
{
str[a]=gen.getChildAt(i).getChildAt(a).toString();
}
list.add(str);
}
for (int i=0;i<list.size();i++)
{
String[] str=(String[])list.get(i);
System.out.println("第"+(i+1)+"层");
for (String a:str)
{
System.out.print(a+"\t");
}
System.out.println("");
}
}}
class Frame2_jButton1_actionAdapter implements ActionListener {
private Frame2 adaptee;
Frame2_jButton1_actionAdapter(Frame2 adaptee) {
this.adaptee = adaptee;
} public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
package ok;import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Rectangle;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.JTree;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;public class Frame2 extends JFrame {
JPanel contentPane;
DefaultMutableTreeNode gen=new DefaultMutableTreeNode("根");
JTree jTree1 = new JTree(gen);
JButton jButton1 = new JButton();
public Frame2() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE);
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
} /**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane();
contentPane.setLayout(null);
setSize(new Dimension(400, 300));
setTitle("Frame Title");
jTree1.setBounds(new Rectangle(84, 40, 222, 167));
jButton1.setBounds(new Rectangle(137, 238, 129, 44));
jButton1.setText("jButton1");
jButton1.addActionListener(new Frame2_jButton1_actionAdapter(this));
contentPane.add(jTree1);
contentPane.add(jButton1); DefaultMutableTreeNode zhi1=new DefaultMutableTreeNode("枝1");
DefaultMutableTreeNode zhi2=new DefaultMutableTreeNode("枝2");
DefaultMutableTreeNode zhi3=new DefaultMutableTreeNode("枝3");
DefaultMutableTreeNode ye1=new DefaultMutableTreeNode("叶1");
DefaultMutableTreeNode ye2=new DefaultMutableTreeNode("叶2"); DefaultMutableTreeNode ye3=new DefaultMutableTreeNode("叶3");
zhi1.add(ye1);
zhi1.add(ye2);
zhi1.add(ye3); DefaultMutableTreeNode ye4=new DefaultMutableTreeNode("叶4");
DefaultMutableTreeNode ye5=new DefaultMutableTreeNode("叶5");
DefaultMutableTreeNode ye6=new DefaultMutableTreeNode("叶6");
DefaultMutableTreeNode ye7=new DefaultMutableTreeNode("叶7"); zhi2.add(ye4);
zhi2.add(ye5);
zhi2.add(ye6);
zhi2.add(ye7); gen.add(zhi1);
gen.add(zhi2);
gen.add(zhi3);
} public void jButton1_actionPerformed(ActionEvent e) {
DefaultMutableTreeNode gen=(DefaultMutableTreeNode)jTree1.getModel().getRoot();
ArrayList list=new ArrayList();
for (int i=0;i<gen.getChildCount();i++)
{
String[] str=new String[gen.getChildAt(i).getChildCount()];
for (int a=0;a<gen.getChildAt(i).getChildCount();a++)
{
str[a]=gen.getChildAt(i).getChildAt(a).toString();
}
list.add(str);
}
for (int i=0;i<list.size();i++)
{
String[] str=(String[])list.get(i);
System.out.println("第"+(i+1)+"层");
for (String a:str)
{
System.out.print(a+"\t");
}
System.out.println("");
}
}}
class Frame2_jButton1_actionAdapter implements ActionListener {
private Frame2 adaptee;
Frame2_jButton1_actionAdapter(Frame2 adaptee) {
this.adaptee = adaptee;
} public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
for (String a:str) ------〉啥意思?
{
System.out.print(a+ "\t ");
}
和for循环差不多的。 jdb5新加的功能