mibTreeDemo.java.txt
上传用户:aonuowh
上传日期:2021-05-23
资源大小:35390k
文件大小:4k
源码类别:

SNMP编程

开发平台:

C/C++

  1. /* $Id: mibTreeDemo.java,v 1.3 2002/09/09 05:35:19 tonyjpaul Exp $ */
  2. /*
  3.  * @(#)mibTreeDemo.java
  4.  * Copyright (c) 1996-2003 AdventNet, Inc. All Rights Reserved.
  5.  * Please read the COPYRIGHTS file for more details.
  6.  */
  7. /** 
  8.  *  An example of using the MibTree class with the JFC tree component.
  9.  *  This enables loading and using SNMP MIBs with the JFC.
  10.  *  mibs .Mandatory.          - The mibs to be loaded.
  11.  **/
  12. import javax.swing.*;
  13. import javax.swing.tree.*;
  14. import javax.swing.event.*;
  15. import java.awt.event.*;
  16. import java.awt.*;
  17. import com.adventnet.snmp.ui.*;
  18. import com.adventnet.snmp.mibs.*;
  19. public class mibTreeDemo extends JFrame {
  20.     JTextArea text; // we'll use to display node information
  21.     public mibTreeDemo(String mibs) {
  22.         super("MainWindow");
  23.     MibOperations mibOps = new MibOperations();
  24.  
  25.  //To load MIBs from compiled file
  26.  mibOps.setLoadFromCompiledMibs(true);
  27.  
  28.     try {
  29.         System.out.println("Loading MIBs: "+mibs);
  30.         mibOps.loadMibModules(mibs);
  31.         System.out.println("Done.");
  32.     } catch (Exception ex) {
  33.         System.err.println("Error: "+ex);
  34. }
  35.         JPanel treepanel = new JPanel();
  36.         JPanel displaypanel = new JPanel();
  37.         JSplitPane splitpane = new JSplitPane();
  38.         splitpane.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
  39.         splitpane.setLeftComponent(treepanel);
  40.         splitpane.setDividerSize(2);
  41.         splitpane.setRightComponent(displaypanel);
  42.     MibTree tree = new MibTree(mibOps);
  43.     //tree.setRootVisible(false);
  44.         //Create the scroll pane and add the tree to it. 
  45.     JScrollPane scrollPane = new JScrollPane(tree);
  46.     //Add the scroll pane to this tree panel.
  47.     treepanel.setLayout(new GridLayout(1, 0)); 
  48.     treepanel.setMinimumSize(new Dimension(200,300));
  49.         treepanel.add(scrollPane);
  50.     // lets add a text area at right
  51.     text = new JTextArea("We'll display MIB node information here");
  52.     text.setLineWrap(true);
  53.         displaypanel.setLayout(new GridLayout(1, 0)); 
  54.     displaypanel.add(text);
  55.     displaypanel.setMinimumSize(new Dimension(300,300));
  56.     
  57.     // add the splitpane
  58.     getContentPane().add(splitpane);
  59.     setTitle("JFC Mib Tree Demo");
  60.     // Need to setup a listener for selection to display data
  61.     TreeSelectionListener listener = new TreeSelectionListener() {
  62.       public void valueChanged(TreeSelectionEvent e) {
  63.         Object selected = e.getPath().getLastPathComponent();
  64.         if (selected instanceof NodeData) {
  65.           Object obj = ((NodeData)selected).getUserObject();
  66.           if (obj instanceof MibNode) 
  67.           text.setText("nn"+ ((MibNode)obj).toTagString() );
  68.         } //else text.setText( "Selected: "+selected.getClass() );
  69.       }
  70.     };
  71.         tree.tree.addTreeSelectionListener(listener);
  72.         tree.tree.expandRow(0);
  73.     } /* mibTreeDemo */
  74.     public static void main(String[] args) {
  75. if(args.length<1){
  76. System.out.println("usage: mibTreeDemo MIB_File ");
  77. System.exit(0);
  78. }
  79.     String mibs = args[0];
  80.     
  81.         try {
  82.             UIManager.setLookAndFeel(
  83.                 UIManager.getSystemLookAndFeelClassName());
  84.         } catch (Exception e) {
  85.             System.err.println("Couldn't use the system "
  86.                              + "look and feel: " + e);
  87.         }
  88.         JFrame frame = new mibTreeDemo(mibs);
  89.         WindowListener l = new WindowAdapter() {
  90.             public void windowClosing(WindowEvent e) {
  91.                 System.exit(0);
  92.             }
  93.         };
  94.         frame.addWindowListener(l);
  95.         frame.setSize(700,500);
  96.         frame.setVisible(true);
  97.     }
  98. }