DefaultMutableTreeNode month[]=new DefaultMutableTreeNode[13];
Remember()
{Container con=getContentPane();
DefaultMutableTreeNode root=new DefaultMutableTreeNode("日历记事本");
for(i=1;i<=12;i++)
{month[i]=new DefaultMutableTreeNode(""+i+"月");
root.add(month[i]);
}
--------------这样写
Remember()
{Container con=getContentPane();
DefaultMutableTreeNode root=new DefaultMutableTreeNode("日历记事本");
for(i=1;i<=12;i++)
{month[i]=new DefaultMutableTreeNode(""+i+"月");
root.add(month[i]);
}
--------------这样写
//------2002.11.27----//
//监听器的用法
//JTree控件的用法import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;public class TreeDemo
{
JTree jTree;
DefaultMutableTreeNode currTreeNode = null;
JTextField txtField;
//主方法
public static void main(String args[])
{
//建立类的对象
TreeDemo mainFrame=new TreeDemo();
//调用类的方法进行初始化
try
{
mainFrame.mainFrameInit();
}
catch(Exception e)
{
System.out.println("不能初始化窗口");
}
} //构造初始化窗口
public void mainFrameInit() throws Exception
{
//建立主窗口框架
JFrame jFrame;
jFrame=new JFrame("Swing控件测试程序");
//创建布局管理器对象
GridBagLayout myLayout;
myLayout=new GridBagLayout(); //设置窗口的布局管理器
jFrame.getContentPane().setLayout(myLayout);
jFrame.setDefaultCloseOperation(jFrame.EXIT_ON_CLOSE); //建立JButton对象
JButton btnAdd=new JButton("增加");
JButton btnEdit=new JButton("修改");
JButton btnDel=new JButton("删除");
JButton btnExit=new JButton("退出"); //加入JButton对象
jFrame.getContentPane().add(btnAdd,new GridBagConstraints(1,1,1,1,0.0,0.0,
GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(2,10,2,10),2,2));//增加
btnAdd.addActionListener(new AddItem()); jFrame.getContentPane().add(btnEdit,new GridBagConstraints(5,2,1,1,0.0,0.0,
GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(2,10,2,10),2,2));//修改
btnEdit.addActionListener(new EditItem()); jFrame.getContentPane().add(btnDel,new GridBagConstraints(2,1,1,1,0.0,0.0,
GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(2,10,2,10),2,2));//删除
btnDel.addActionListener(new DelItem()); jFrame.getContentPane().add(btnExit,new GridBagConstraints(3,1,1,1,0.0,0.0,
GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(2,10,2,10),2,2));//退出
btnExit.addActionListener(new ExitMain());
//重命名标签
JLabel labEdit=new JLabel("请填入新的节点名称:");
jFrame.getContentPane().add(labEdit,new GridBagConstraints(1,2,2,1,0.0,0.0,
GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(2,10,2,10),2,2)); //新名称输入框
txtField=new JTextField();
jFrame.getContentPane().add(txtField,new GridBagConstraints(3,2,2,1,1.0,0.0,
GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(2,10,2,10),2,2)); //建立树的根节点
DefaultMutableTreeNode top=new DefaultMutableTreeNode("根节点"); //建立树的第一分支
DefaultMutableTreeNode a=new DefaultMutableTreeNode("分支一");
top.add(a);
DefaultMutableTreeNode a1=new DefaultMutableTreeNode("分支一节点一");
a.add(a1);
DefaultMutableTreeNode a2=new DefaultMutableTreeNode("分支一节点二");
a.add(a2); //建立树的第二分支
DefaultMutableTreeNode b=new DefaultMutableTreeNode("分支二");
top.add(b);
DefaultMutableTreeNode b1=new DefaultMutableTreeNode("分支二节点一");
b.add(b1);
DefaultMutableTreeNode b2=new DefaultMutableTreeNode("分支二节点二");
b.add(b2);
//建立JTree对象
jTree=new JTree(top);
//加入JTree对象
JScrollPane jScrollPane=new JScrollPane(jTree,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); jFrame.getContentPane().add(jScrollPane, new GridBagConstraints(1, 3, 10, 1, 1.0, 1.0,
GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(2, 2, 2, 2), 2, 2));
jTree.addTreeSelectionListener(new SelItem()); //设定窗口的宽度和高度
jFrame.setSize(600,480);
//显示窗口
jFrame.setVisible(true);
} class ExitMain implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
//执行退出程序的动作
System.exit(0);
}
} class AddItem implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
//执行增加节点的动作
DefaultMutableTreeNode newNode = new DefaultMutableTreeNode("新增节点");
currTreeNode.add(newNode);
DefaultTreeModel model = (DefaultTreeModel)jTree.getModel();
model.nodeStructureChanged(currTreeNode);
}
} class EditItem implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
//执行重命名的动作
currTreeNode.setUserObject(txtField.getText());
DefaultTreeModel model = (DefaultTreeModel)jTree.getModel();
model.nodeChanged(currTreeNode);
}
} class DelItem implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
//执行删除节点的动作
DefaultTreeModel model = (DefaultTreeModel)jTree.getModel();
model.removeNodeFromParent(currTreeNode);
}
} class SelItem implements TreeSelectionListener
{
public void valueChanged(TreeSelectionEvent e)
{
currTreeNode = (DefaultMutableTreeNode) jTree.getLastSelectedPathComponent();
}
}
}