读书人

java 基于SNMP/MIB的网络数据获取系统

发布时间: 2012-09-14 23:00:49 作者: rapoo

java 基于SNMP/MIB的网络数据获取系统设计与实现
/**************************************************************
*
*MibExplorer.java
*
*This application allows you view the MIB tree you loaded,
*get value from,or set value to some equipments in networks
*that are running SNMP agent process.
*
*Author:HEJIE
*Parameter:None
*Returns:None
*Creation date:1/3/2007
*LastUpdate:None
*
**************************************************************/

import com.adventnet.snmp.beans.*;
import com.adventnet.snmp.ui.*;
import com.adventnet.snmp.mibs.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class MibExplorer extends JFrame implements ActionListener
{
Container contentPane=getContentPane();
JMenuBar menub=new JMenuBar();
JMenu files=new JMenu("File");
JMenu opera=new JMenu("Operation");
JMenu help=new JMenu("Help");
JMenuItem save=new JMenuItem("Save Result As...");
JMenuItem exit=new JMenuItem("Exit");
JMenuItem get=new JMenuItem("Get");
JMenuItem getNext=new JMenuItem("GetNext");
JMenuItem set=new JMenuItem("Set");
JMenuItem about=new JMenuItem("About");

JLabel hostL=new JLabel("Host:");
JLabel portL=new JLabel("Port:");
JLabel communityL=new JLabel("Community:");
JLabel writeCommL=new JLabel("Write Community:");
JLabel setValueL=new JLabel("Set Value:");
JLabel oidL=new JLabel("ObjectID:");
JLabel descrL=new JLabel("Descricption:");
JTextField host=new JTextField("127.0.0.1");
JTextField port=new JTextField("161");
JPasswordField community=new JPasswordField("public");
JPasswordField writeComm=new JPasswordField("public");
JTextField setValue=new JTextField();
JTextField oid=new JTextField(".1.3.6.1.2.1.1.1.0");
JTextArea descr=new JTextArea();
JButton getB=new JButton("Get");
JButton getNextB=new JButton("GetNext");
JButton setB=new JButton("set");
JButton getTableB=new JButton("GetTable");
JButton clear=new JButton("Clear");
JTextArea mess=new JTextArea();


MibExplorer()
{
super("--Simple MibExplorer--");
int x,y;
Dimension size=Toolkit.getDefaultToolkit().getScreenSize();
x=(size.width-750)/2;
y=(size.height-500)/2;
setSize(750,500);
setLocation(x,y);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//setVisible(true);
}

void init()
{
//主界面初始化
files.setMnemonic('F');
opera.setMnemonic('O');
help.setMnemonic('H');
save.setMnemonic('S');
exit.setMnemonic('X');
get.setMnemonic('G');
getNext.setMnemonic('N');
set.setMnemonic('E');
about.setMnemonic('A');
//为控件添加助记符
save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
get.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK));
getNext.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
set.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));
//为控件添加快捷键
files.add(save);
files.addSeparator();
files.add(exit);
opera.add(get);
opera.add(getNext);
opera.addSeparator();
opera.add(set);
help.add(about);
menub.add(files);
menub.add(opera);
menub.add(help);
setJMenuBar(menub);

save.addActionListener(this);
exit.addActionListener(this);
about.addActionListener(this);

mess.setForeground(Color.blue);


mess.setEditable(false);
descr.setEditable(false);
//mess.setLineWrap(true);
//descr.setLineWrap(true);
get.addActionListener(this);
getB.addActionListener(this);
getNext.addActionListener(this);
getNextB.addActionListener(this);
getTableB.addActionListener(this);
set.addActionListener(this);
setB.addActionListener(this);
clear.addActionListener(this);
//添加事件侦听器
descr.setBackground(new Color(220,220,220));

JSplitPane splitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,mibTreePane(),componentPane());
getContentPane().add(splitPane);

update(getGraphics());
}

JPanel mibTreePane()
{
//此方法利用Adventnet SNMP API的MibTree等类,装载MIB模型,显示MIB树,
//程序运行后可看到效果
MibOperations mibOps = new MibOperations();
MibTree mibTree;
try
{
mibOps.loadMibModules("RFC1213-MIB");
}
catch (Exception ex)
{
System.err.println("Error loading MIBs: " + ex);
}
mibTree=new MibTree(mibOps);
TreeSelectionListener listener = new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
Object selected = e.getPath().getLastPathComponent();
if (selected instanceof NodeData) {
Object obj = ((NodeData)selected).getUserObject();
if (obj instanceof MibNode)
{
oid.setText(((MibNode)obj).getNumberedOIDString());
descr.setText(((MibNode)obj).getDescription());
descr.setCaretPosition(0);
}
}
}
};
mibTree.getTree().addTreeSelectionListener(listener);
return mibTree;
}

JPanel componentPane()
{
//具体的界面布局设置,主要用到了GridBagLayout网格包布局管理器
JPanel jp=new JPanel();
JPanel jp2=new JPanel();
JScrollPane sp1=new JScrollPane(mess);
JScrollPane sp2=new JScrollPane(descr);

jp2.setLayout(new GridLayout(1,5));
jp2.add(getB);
jp2.add(getNextB);
jp2.add(getTableB);
jp2.add(setB);
jp2.add(clear);

GridBagLayout gridbag=new GridBagLayout();
GridBagConstraints constraints=new GridBagConstraints();
jp.setLayout(gridbag);

constraints.fill = GridBagConstraints.BOTH;
constraints.insets = new Insets(2,4,2,4);

gridbag.setConstraints(hostL,constraints);
gridbag.setConstraints(portL,constraints);
gridbag.setConstraints(communityL,constraints);
gridbag.setConstraints(writeCommL,constraints);
gridbag.setConstraints(setValueL,constraints);
gridbag.setConstraints(oidL,constraints);
gridbag.setConstraints(descrL,constraints);

constraints.gridwidth=2;
constraints.weightx=1;

gridbag.setConstraints(host,constraints);
gridbag.setConstraints(community,constraints);
gridbag.setConstraints(setValue,constraints);

constraints.gridwidth=GridBagConstraints.REMAINDER;

gridbag.setConstraints(port,constraints);
gridbag.setConstraints(writeComm,constraints);
gridbag.setConstraints(oid,constraints);
gridbag.setConstraints(jp2,constraints);


constraints.gridheight=GridBagConstraints.RELATIVE;
constraints.weighty=0.75;
gridbag.setConstraints(sp1,constraints);


constraints.gridheight=GridBagConstraints.REMAINDER;
constraints.weighty=0.25;
gridbag.setConstraints(sp2,constraints);

jp.add(hostL);
jp.add(host);
jp.add(portL);
jp.add(port);
jp.add(communityL);
jp.add(community);
jp.add(writeCommL);
jp.add(writeComm);
jp.add(setValueL);
jp.add(setValue);
jp.add(oidL);
jp.add(oid);
jp.add(jp2);
jp.add(sp1);


jp.add(descrL);
jp.add(sp2);

return(jp);
}



[解决办法]
下载一个 jimi 类库就可以了。http://d.download.csdn.net/down/444010/hb_chenli

读书人网 >J2EE开发

热点推荐