- 论坛徽章:
- 0
|
import java.awt.*;
import javax.swing.*;
import javax.swing.tree.*;
import javax.swing.event.*;
import java.awt.event.*;
/**
* @author lisheng
*
*/
//symantec Antivirus 界面部分实现
public class MainFrame extends JFrame implements TreeSelectionListener
{
//树组件
JTree tree;
DefaultMutableTreeNode root,node1,node2,node11,node12,node13,node14,node15,node21,node22,node23; //树结点
//菜单组件
JMenuBar jmb = new JMenuBar();
JMenu menu1 = new JMenu("文件");
JMenu menu2 = new JMenu("编辑");
JMenu menu3 = new JMenu("查看");
JMenu menu4 = new JMenu("扫描");
JMenu menu5 = new JMenu("配置");
JMenu menu6 = new JMenu("历史记录");
JMenu menu7 = new JMenu("帮助");
JMenuItem mitem1 = new JMenuItem("配置历史记录");
JMenuItem mitem2 = new JMenuItem("调度更新");
JMenuItem mitem3 = new JMenuItem("Live Update");
JMenuItem mitem4 = new JMenuItem("风险列表");
JMenuItem mitem5 = new JMenuItem("卸载服务");
JMenuItem mitem6 = new JMenuItem("退出");
JPanel mp=new JPanel();
JSplitPane jsp;
//卡片布局
CardLayout card = new CardLayout();
JPanel jp1 = new JPanel(); //实际中应该定义一个继承JPanel类来实现
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
public MainFrame()
{
//构造树
tree = new JTree(this.getTreeModel());
//构造拆分窗格
jsp = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,new JScrollPane(tree),mp);
jsp.setDividerLocation(150);
//给树添加监听器
tree.addTreeSelectionListener(this);
this.initMenu();//初始化菜单
this.setJMenuBar(jmb); //添加菜单
this.initCard();
this.add(jsp);
this.setSize(600,500);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
private void initMenu()
{
//建立菜单
jmb.add(menu1);
jmb.add(menu2);
jmb.add(menu3);
jmb.add(menu4);
jmb.add(menu5);
jmb.add(menu6);
jmb.add(menu7);
menu1.add(mitem1);
menu1.add(mitem2);
menu1.add(mitem3);
menu1.add(mitem4);
menu1.addSeparator();
menu1.add(mitem5);
menu1.addSeparator();
menu1.add(mitem6);
}
private void initCard()
{
//构造卡片
mp.setLayout(card);
mp.add("root",jp1); //根节点对应的页面
mp.add("node1",jp2);//非叶子节点对应的页面
mp.add("node11",jp3);//叶子节点对应的页面
}
public DefaultTreeModel getTreeModel()
{
//建立树模型对象
root = new DefaultMutableTreeNode("Symantec AntiVirus");
node1 = new DefaultMutableTreeNode("查看");
node2 = new DefaultMutableTreeNode("扫描");
node11 = new DefaultMutableTreeNode("自动防护扫描统计");
node12 = new DefaultMutableTreeNode("调度扫描");
node13 = new DefaultMutableTreeNode("隔离区");
node14 = new DefaultMutableTreeNode("备份项目");
node15 = new DefaultMutableTreeNode("修复的项目");
node21 = new DefaultMutableTreeNode("自定义扫描");
node22 = new DefaultMutableTreeNode("快速扫描");
node23 = new DefaultMutableTreeNode("全面扫描");
//给树添加结点
root.add(node1);
root.add(node2);
node1.add(node11);
node1.add(node12);
node1.add(node13);
node1.add(node14);
node1.add(node15);
node2.add(node21);
node2.add(node22);
node2.add(node23);
DefaultTreeModel model = new DefaultTreeModel(root);
return model;
}
public void valueChanged(TreeSelectionEvent e)
{
DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if(node==root)
{
card.show(mp, "root");//显示根节点对应页面
}
else if(node==node1)
{
card.show(mp, "node1");
}
else if(node==node11)
{
card.show(mp, "node11");
}
}
public static void main(String[] args)
{
new MainFrame();
}
}
效果图如下
![]()
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/62780/showart_491628.html |
|