📄 docinspecture.java
字号:
package boco.atmmonitor.docmonitor;//******************************************************************************//:功能:设备监控的主程序,实现对不同区的设备状态监控//:时间:2002-08//:作者:王建宾//:特殊描述::test:为DEBUG时启用//:程序描述:////******************************************************************************import java.awt.*;import javax.swing.*;import javax.swing.event.*;import java.io.*;import java.applet.*;import java.awt.event.*;import java.sql.*;import java.net.*;import java.util.*;import org.w3c.dom.*;import xmlapp.*;import boco.atmmonitor.DBConn.*;import javax.swing.tree.*;//**************************************************************************//类名称:文本显示监控状态//类功能:显示监控站点的运行状态//***************************************************************************//原程序//public class docInspecture extends JFrame implements ListSelectionListener{//changedpublic class docInspecture extends JFrame{ int docMonitorPower=0;//监控权限 int INTERVALSECOND = 60000;//缺省间隔轮询时间 javax.swing.Timer timer=null;//定时器 protected Button start=new Button();//开始按钮 protected Button stop=new Button();//停止按钮 protected PopupMenu popup = null;//弹出操作MENU Container contentPane=null;//主面板 JScrollPane jPanel1 = null;//操作工作域 JTable atmTable = null;//ATM状态表 atmValues atmv = null;//状态表值 JPanel jPanel2= new JPanel();//主显示工作域 JLayeredPane jPanelChart = new JLayeredPane(); JScrollPane JSArea = null;//区操作域 JList AreaList = null;//分区显示 int in = -1;//保存被选中区值 int Count = 0; //行所号信息 JTree jTree1; Vector vBranchCode=new Vector(); Vector vBranchName = new Vector(); String branchcode=""; String branchname = ""; String root = ""; int statuLen=1; DefaultMutableTreeNode node = null; BranchCodeInfo bci; //分区参数 Vector ListValue = new Vector(); Vector ListId = new Vector(); Vector ListMap = new Vector(); //数据库中ATM信息 //Atm参数 Vector AtmId = new Vector(); Vector vStatus = new Vector(); String AreaId = ""; boolean isStandalone = false; String thePower="";//判断用户权限级别 Vector vActPower=new Vector();//用户操作权限值 int actionPower=2;//判断用户操作权限 String User="";//用户 pointDB dbConn=null; String dbDriver=""; String username=""; String connstr=""; String pass="";//数据库密码 Vector status=new Vector();//设备状态集合 Vector dev=new Vector();//设备名集合 // //************************************************************************ //方法名称:取得对话框父窗口 //方法功能:为对话框的显示获取父窗口 //************************************************************************ static Frame getFrame(Component c) { while((c = c.getParent()) != null) { if(c instanceof Frame) return (Frame)c; } return null; } //Window事件响应 protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } /**Construct the frame*/ public docInspecture(String Name) { User = Name; //changed if(Name.length()==4) actionPower=1; //end changed enableEvents(AWTEvent.WINDOW_EVENT_MASK); try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //************************************************************************** //方法名称:frame初始化方法 //方法功能:取得HTML中APPLET的参数,并初始化列表头和名称列的值 //************************************************************************** private void jbInit() throws Exception { //解析XML读所需参数 InputStream is=getClass().getResourceAsStream("/db.properties") ; Properties dbProps = new Properties(); try{ dbProps.load(is) ; } catch(Exception e){ System.err.println("不能读取属性文件") ; } String urlXml=dbProps.getProperty("atm.monitor") ; xmlDompaserBean xmlconfig=new xmlDompaserBean(urlXml); Vector vc=xmlconfig.getXmlNodeByName("paramSaveTo"); Node node=(Node)vc.elementAt(0); xmlconfig.printNextLevelNodes(node); dbDriver=xmlconfig.getNodeValues().elementAt(1).toString(); connstr=xmlconfig.getNodeValues().elementAt(2).toString(); username=xmlconfig.getNodeValues().elementAt(3).toString(); pass=xmlconfig.getNodeValues().elementAt(4).toString(); INTERVALSECOND=Integer.parseInt(xmlconfig.getNodeValues().elementAt(5).toString()); xmlconfig.close(); //:test:System.out.println("Driver:"+dbDriver); //:test:System.out.println("ConnStr:"+connstr); //:test:System.out.println("UserName:"+username); //:test:System.out.println("Password:"+pass); //:test:System.out.println("Interval:"+INTERVALSECOND); //各控件的初始化及显示 contentPane = getContentPane(); contentPane.setLayout(null); this.setSize(new Dimension(800, 600)); this.setTitle("ATM Detector"); jPanel2.setBounds(new Rectangle(180, 10, 600, 30)); jPanel2.setLayout(null); jPanel2.setBorder(BorderFactory.createLineBorder(Color.black)); start.setLabel("开始监控"); start.setBounds(4,4,90,23); start.setEnabled(false); stop.setLabel("停止监控"); stop.setBounds(100,4,90,23); stop.setEnabled(false); jPanel2.add(start,null); jPanel2.add(stop,null); jPanelChart.setBounds(new Rectangle(180, 45, 600, 20)); jPanelChart.setBorder(BorderFactory.createLineBorder(Color.black)); JLabel label = createColoredLabel("状态统计",Color.blue,1,600,"状态统计"); jPanelChart.add(label); contentPane.add(jPanelChart,null); jPanel1 = new JScrollPane(); jPanel1.setBounds(new Rectangle(180,70,600,500)); contentPane.add(jPanel1, null); contentPane.add(jPanel2, null); start.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { startInspect(); } }); stop.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent e) { stopInspect(); } }); //设置分区List并显示 /*getPower gp=new getPower(); thePower = gp.getUserPower(User); AreaInfo ai = new AreaInfo(); ai.getAllArea(thePower); vActPower = ai.getAllAreaPower(); ListValue = ai.getAllAreaName(); ListId = ai.getAllAreaId(); ListMap = ai.getAllAreaMap(); AreaList = new JList(ListValue); AreaList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); AreaList.addListSelectionListener(this); AreaList.setToolTipText("选中分区进行设备监控"); JSArea = new JScrollPane(AreaList); JSArea.getViewport().setBackground(Color.white); JSArea.setBorder(BorderFactory.createLineBorder(Color.black)); JSArea.setBounds(new Rectangle(10, 10, 60, 570)); contentPane.add(JSArea,null);*/ bci = new BranchCodeInfo(); vBranchCode = bci.getAllBranchCode() ; vBranchName = bci.getAllBranchName() ; for(int i=0;i<vBranchCode.size() ;i++){ if(vBranchCode.elementAt(i).toString().equals(User)) root=vBranchName.elementAt(i).toString(); } DefaultMutableTreeNode top = new DefaultMutableTreeNode(root); jTree1 = new JTree(top); createNodes(top); jTree1.setEditable(false); jTree1.getSelectionModel().setSelectionMode(TreeSelectionModel.CONTIGUOUS_TREE_SELECTION); jTree1.setShowsRootHandles(true); jTree1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(MouseEvent exp) { jTree1_mouseClicked(exp); } }); JScrollPane treeView = new JScrollPane(jTree1); JSArea = new JScrollPane(jTree1); JSArea.getViewport().setBackground(Color.white); JSArea.setBorder(BorderFactory.createLineBorder(Color.black)); JSArea.setBounds(new Rectangle(10, 10, 160, 570)); contentPane.add(JSArea,null); } //create color label private JLabel createColoredLabel(String text,Color color,int len,int length,String tooltip) { JLabel label = new JLabel(text); label.setVerticalAlignment(JLabel.TOP); label.setHorizontalAlignment(JLabel.CENTER); label.setOpaque(true); label.setBackground(color); label.setForeground(Color.white); label.setBounds(len,1, length, 18); label.setToolTipText(tooltip); return label; } //method createNodes to add nodes to the tree public void createNodes(DefaultMutableTreeNode top) { //如果输入参数(作为用户名从IE端输入)是95599 则认为是行长,有监控全部支行的权限 String bc=""; if(User.equals("95599")){ for(int i=0;i<vBranchCode.size();i++){ bc = vBranchCode.elementAt(i).toString(); if(bc.length()==2){ node = new DefaultMutableTreeNode(vBranchName.elementAt(i)); top.add(node); for(int j=0;j<vBranchCode.size();j++){ String tmp = vBranchCode.elementAt(j).toString(); if(tmp.length()>2 && tmp.substring(0,2).equals(bc)){ node.add(new DefaultMutableTreeNode(vBranchName.elementAt(j))); } } } } } //否则认为是非行长,只有监控支行的权限 else{ //如果输入是2位字符,则认为是支行人员登陆,有监控支行权限 if(User.length()==2){ for(int j=0;j<vBranchCode.size();j++){ String tmp = vBranchCode.elementAt(j).toString(); //System.out.println(tmp); if(tmp.length()>2 && tmp.substring(0,2).equals(User)){ top.add(new DefaultMutableTreeNode(vBranchName.elementAt(j))); } } } //否则就是认为是所管理人员登陆,有监控所的权限 else{ //只会有一个节点,根节点,已经赋过值 } } } //显示树结束//***************************************************************************//方法名称:“开始监控”按钮的触发方法//方法功能:按下按钮之后,间隔轮循ATM状态//*************************************************************************** void startInspect(){ JOptionPane.showMessageDialog(null,"设备状态监控开始","信息提示",JOptionPane.INFORMATION_MESSAGE); stop.setEnabled(true); start.setEnabled(false); try{ //间隔固定时间后发送查询信息 timer = new javax.swing.Timer(INTERVALSECOND, new ActionListener() { public void actionPerformed(ActionEvent evt) { //从数据库中取当前ATM状态 Vector nowAtmStatus = new Vector(); atmValues tmpatmv = new atmValues(dbDriver,connstr,username,pass); tmpatmv.atmValues(AreaId); nowAtmStatus.removeAllElements(); nowAtmStatus = tmpatmv.getStatus(); //状态发生改变否 //:test:System.out.println(vStatus.toString()); //:test:System.out.println(nowAtmStatus.toString()); if(!nowAtmStatus.equals(vStatus)){ //viewATM(in); viewATM(branchcode); } } }); timer.start(); }catch(Exception e){ JOptionPane.showMessageDialog(null,"进入监控状态时出现错误:"+e.getMessage(),"提示",JOptionPane.INFORMATION_MESSAGE); start.setEnabled(true); stop.setEnabled(false); } }//***************************************************************************//方法名称:“停止监控”按钮的触发方法//方法功能:按下按钮之后,停止监控ATM状态//*************************************************************************** void stopInspect(){ JOptionPane.showMessageDialog(null,"设备状态监控结束","信息提示",JOptionPane.INFORMATION_MESSAGE); start.setEnabled(true); stop.setEnabled(false); try{ if(timer!=null) timer.stop(); }catch(Exception e){ JOptionPane.showMessageDialog(null,"停止监控时出现错误:"+e.getMessage(),"错误",JOptionPane.ERROR_MESSAGE); } } //返回当前区县ID public int getIndex(){ return in; } /* //选中不同区县 public void valueChanged(ListSelectionEvent e) { stop.setEnabled(false); if(timer!=null){ timer.stop(); } if (e.getValueIsAdjusting()) return; JList theList = null; theList = (JList)e.getSource(); if (theList.isSelectionEmpty()) { } else{ int index = theList.getSelectedIndex(); in = index; actionPower = Integer.parseInt(vActPower.elementAt(in).toString()); viewATM(in); start.setEnabled(true); } }*/ //响应树地鼠标事件根据节点不同加载地图模板 void jTree1_mouseClicked(MouseEvent exp){ stop.setEnabled(false); if(timer!=null){ timer.stop(); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -