麻烦用通俗的语言讲一下DefaultMutableTreeNode类是作什么的?getLastSelectedPathComponent()函数作甚么?getUserObject()作甚么? 看了javadoc有些看不懂!以上函数和类都在下列代码的public void valueChanged(TreeSelectionEvent tse)里!/*
* TestJTree1.java
*
* Created on September 5, 2002, 11:12 AM
*/package ch17;import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;/**
*
* @author Stephen Potts
*/
public class TestJTree1 extends JFrame implements TreeSelectionListener
{
private JTree tree1;
private JTextField jtf;
/** Creates a new instance of TestJTree1 */
public TestJTree1()
{
jtf = new JTextField(15);
jtf.setEditable(false);
Object[] league = {"nl", "al"};
Vector nlV = new Vector()
{
public String toString()
{
return "National League";
}
};
nlV.addElement("Braves");
nlV.addElement("Mets");
nlV.addElement("Cardinals");
nlV.addElement("Rockies" );
Vector alV = new Vector()
{
public String toString()
{
return "American League";
}
};
alV.addElement("Rangers");
alV.addElement("Twins");
alV.addElement("A's");
alV.addElement("White Sox" );
league[0] = nlV;
league[1] = alV; tree1 = new JTree(league);
tree1.setRootVisible(true);
tree1.expandRow(0);
tree1.addTreeSelectionListener(this);
getContentPane().add(new JScrollPane(tree1),
BorderLayout.CENTER);
getContentPane().add(jtf, BorderLayout.SOUTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 300, 300);
setVisible(true);
setTitle("Using a JTree");
}
public void valueChanged(TreeSelectionEvent tse)
{
DefaultMutableTreeNode dmtn =
(DefaultMutableTreeNode) tree1.getLastSelectedPathComponent();
String name1 = (String) dmtn.getUserObject();
jtf.setText("you selected: " + name1);
jtf.setForeground(Color.red);
}
public static void main(String args[])
{
TestJTree1 tjt1 = new TestJTree1();
}
}
* TestJTree1.java
*
* Created on September 5, 2002, 11:12 AM
*/package ch17;import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;/**
*
* @author Stephen Potts
*/
public class TestJTree1 extends JFrame implements TreeSelectionListener
{
private JTree tree1;
private JTextField jtf;
/** Creates a new instance of TestJTree1 */
public TestJTree1()
{
jtf = new JTextField(15);
jtf.setEditable(false);
Object[] league = {"nl", "al"};
Vector nlV = new Vector()
{
public String toString()
{
return "National League";
}
};
nlV.addElement("Braves");
nlV.addElement("Mets");
nlV.addElement("Cardinals");
nlV.addElement("Rockies" );
Vector alV = new Vector()
{
public String toString()
{
return "American League";
}
};
alV.addElement("Rangers");
alV.addElement("Twins");
alV.addElement("A's");
alV.addElement("White Sox" );
league[0] = nlV;
league[1] = alV; tree1 = new JTree(league);
tree1.setRootVisible(true);
tree1.expandRow(0);
tree1.addTreeSelectionListener(this);
getContentPane().add(new JScrollPane(tree1),
BorderLayout.CENTER);
getContentPane().add(jtf, BorderLayout.SOUTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 300, 300);
setVisible(true);
setTitle("Using a JTree");
}
public void valueChanged(TreeSelectionEvent tse)
{
DefaultMutableTreeNode dmtn =
(DefaultMutableTreeNode) tree1.getLastSelectedPathComponent();
String name1 = (String) dmtn.getUserObject();
jtf.setText("you selected: " + name1);
jtf.setForeground(Color.red);
}
public static void main(String args[])
{
TestJTree1 tjt1 = new TestJTree1();
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货