📄 pictureinspecture.java
字号:
package boco.atmmonitor.picmonitor;//******************************************************************************//:功能:图形设备监控的主程序,实现对不同区的设备状态监控//:时间:2002-08//:作者:王建宾//:特殊描述::test:为DEBUG时启用//:程序描述:////******************************************************************************import boco.atmmonitor.docmonitor.*;import java.awt.*;import java.awt.datatransfer.*;import java.awt.dnd.*;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.*;//**************************************************************************//类名称:图形化显示APPLET//类功能:利用图形显示监控站点的运行状态//***************************************************************************public class pictureInspecture extends JApplet{ int INTERVALSECOND = 60000;//却省间隔论询时间 javax.swing.Timer timer=null;//定时器 private Image lamp;//指示灯增加 private Image lamp1;//指示灯1 private Image lamp2;//指示灯2 private Image lamp3;//指示灯3 private Image lamp4;//指示灯4 private Image lamp5;//指示灯5 private Image lamp6;//指示灯6 private Image lamp7;//指示灯7 private Image lamp8;//指示灯8 public final static DataFlavor LABEL_FLAVOR=new DataFlavor(JLabel.class,"图形图标");//拖动数据 protected DragSourceListener soucelistener;//拖动源监听器1 protected DragSourceListener soucelistener1;//拖动源监听器2 protected JLabel dragedComponent;//拖动组件1 protected JLabel dragedComponent1;//拖动组件2 protected JLabel atmStatus;//设备状态提示 protected JLabel atmNew;//新增设备提示 protected JLabel atm;//显示站点图标 protected JLabel atm1;//显示状态图标 protected JLabel atm2;//显示状态图标 protected JLabel atm3;//显示状态图标 protected JLabel atm4;//显示状态图标 protected JLabel atm5;//显示状态图标 protected JLabel atm6;//显示状态图标 protected JLabel atm7;//显示状态图标 protected JLabel atm8;//显示状态图标 protected Button start=new Button();//开始按钮 protected Button stop=new Button();//停止按钮 DragSource source=DragSource.getDefaultDragSource();//拖动源 JPanel jPanel1= new JPanel();//主显示工作域 JPanel jPanel2 = new JPanel();//操作工作域 JScrollPane JSArea = null;//区操作域 JList AreaList = null;//分区显示 int in = 0;//保存被选中区值 //JLabel labelChoose = null;//分区选择提示 //分区参数 Vector ListValue = new Vector(); Vector ListId = new Vector(); Vector ListMap = new Vector(); //数据库中设备信息 //设备参数 Vector AtmId = new Vector(); Vector AtmX = new Vector(); Vector AtmY = new Vector(); Vector vStatus = new Vector(); String AreaId = ""; boolean isStandalone = false; pointDB dbConn=null;//数据库连接 Image mainMap;//背景图片 boolean ImageLoaded;//判断图片是否已经加载 static Component movedComp=null;//移动组件 MediaTracker tracker;//多媒体踪迹记录 Thread animator;//画图线程 int repaintNo=0;//重画次数 String dbDriver="";//数据库连接驱动 String connstr="";//数据库连接字符串 String username="";//数据库用户名 String thePower="";//判断用户权限级别字串 String User="";//用户名 Vector vActPower=new Vector();//所有权限位值 int actionPower=0;//判断用户增/删/改权限 String pass="";//数据库密码 private int moveFlag=-2;//移动标志 Vector status=new Vector();//设备状态集合 Vector dev=new Vector();//设备名集合 //行所号信息 JTree jTree1; JLayeredPane jPanelChart = new JLayeredPane(); Vector vBranchCode=new Vector(); Vector vBranchName = new Vector(); Vector vBranchDes = new Vector(); String branchcode=""; String branchname = ""; String branchmap=""; String root = ""; int statuLen=1; DefaultMutableTreeNode node = null; BranchCodeInfo bci; //************************************************************************ //方法名称:取得对话框父窗口 //方法功能:为对话框的显示获取父窗口 //************************************************************************ 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) { if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } /**Construct the applet*/ public pictureInspecture() { } /**Initialize the applet*/ public void init() { try { jbInit(); } catch(Exception e) { e.printStackTrace(); } } //************************************************************************** //方法名称:APLLET初始化方法 //方法功能:取得HTML中APPLET的参数,并初始化列表头和名称列的值 //************************************************************************** private void jbInit() throws Exception { 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") ; //test:System.out.println("urlXml:"+urlXml) ; 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(); User=getParameter("UserName"); //:test:ystem.out.println("The user:"+User+actionPower); //各控件的初始化及显示 this.getContentPane().setLayout(null); jPanel1.setBounds(new Rectangle(150,65,630,515)); jPanel1.setLayout(null); jPanel2.setBounds(new Rectangle(150, 10, 630, 30)); jPanel2.setLayout(null); jPanelChart.setBounds(new Rectangle(150, 44, 630, 18)); jPanelChart.setBorder(BorderFactory.createLineBorder(Color.black)); JLabel label = createColoredLabel("状态统计",Color.blue,1,630,"状态统计"); jPanelChart.add(label); //contentPane.add(jPanelChart,null); 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); this.getContentPane().add(jPanel1, null); this.getContentPane().add(jPanel2, null); this.getContentPane().add(jPanelChart, 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(); } }); //8种状态图形定义/显示/事件侦听 lamp=this.getImage(this.getCodeBase(),"image/imgadd.gif"); lamp1=this.getImage(this.getCodeBase(),"image/img1.gif"); lamp2=this.getImage(this.getCodeBase(),"image/img2.gif"); lamp3=this.getImage(this.getCodeBase(),"image/img3.gif"); lamp4=this.getImage(this.getCodeBase(),"image/img4.gif"); lamp5=this.getImage(this.getCodeBase(),"image/img5.gif"); lamp6=this.getImage(this.getCodeBase(),"image/img6.gif"); lamp7=this.getImage(this.getCodeBase(),"image/img7.gif"); lamp8=this.getImage(this.getCodeBase(),"image/img8.gif"); mainMap=this.getImage(this.getCodeBase(),"image/imgmain.jpg").getScaledInstance(627, 512,Image.SCALE_DEFAULT); atm=getLabelFromUrl(lamp); atmStatus = new JLabel("状态图例:"); //atmStatus.setBounds(new Rectangle(10, 10, 60, 570)); atmNew = new JLabel("新增图例:"); //atmNew.setBounds(new Rectangle(10, 10, 60, 570)); atm1=getLabelFromUrl(lamp1); atm2=getLabelFromUrl(lamp2); atm3=getLabelFromUrl(lamp3); atm4=getLabelFromUrl(lamp4); atm5=getLabelFromUrl(lamp5); atm6=getLabelFromUrl(lamp6); atm7=getLabelFromUrl(lamp7); atm8=getLabelFromUrl(lamp8); tracker = new MediaTracker(this); tracker.addImage(mainMap, 0); tracker.addImage(lamp, 1); addNewComp(atm,new Point(600,7)); addNewComp(atmNew,new Point(540,7)); DragSource sour=DragSource.getDefaultDragSource(); sour.createDefaultDragGestureRecognizer(atm,DnDConstants.ACTION_COPY_OR_MOVE,new MyGestureListener1()); atm.setVisible(false); atmNew.setVisible(false); addNewComp(atmStatus,new Point(210,7)); addNewComp(atm1,new Point(290,7)); atm1.setToolTipText("正常服务状态"); addNewComp(atm2,new Point(320,7)); atm2.setToolTipText("硬件故障状态"); addNewComp(atm3,new Point(350,7)); atm3.setToolTipText("设备警告状态"); addNewComp(atm4,new Point(380,7)); atm4.setToolTipText("管理模式状态"); addNewComp(atm5,new Point(410,7)); atm5.setToolTipText("关机状态"); addNewComp(atm6,new Point(440,7)); atm6.setToolTipText("脱机状态"); addNewComp(atm7,new Point(470,7)); atm7.setToolTipText("尚未开通状态"); addNewComp(atm8,new Point(500,7)); atm8.setToolTipText("设备更新状态"); DropTarget dt=new DropTarget(jPanel1,DnDConstants.ACTION_COPY_OR_MOVE,new MyDropListener()); soucelistener=new MySourceListener(); soucelistener1=new MySourceListener1(); //设置分区List并显示 /* getPower gp=new getPower(); thePower = gp.getUserPower(User); //:test:System.out.println("The power string:"+thePower); AreaInfo ai = new AreaInfo(); ai.getAllArea(thePower); vActPower = ai.getAllAreaPower(); //:test: System.out.println("The action power:"+vActPower.toString()); ListValue = ai.getAllAreaName(); ListId = ai.getAllAreaId(); ListMap = ai.getAllAreaMap(); AreaList = new JList(ListValue); AreaList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); AreaList.addListSelectionListener(this); JSArea = new JScrollPane(AreaList); JSArea.getViewport().setBackground(Color.white); JSArea.setBorder(BorderFactory.createLineBorder(Color.black)); JSArea.setBounds(new Rectangle(10, 10, 60, 570)); this.getContentPane().add(JSArea,null); */ bci = new BranchCodeInfo(); vBranchCode = bci.getAllBranchCode() ; vBranchName = bci.getAllBranchName() ; vBranchDes = bci.getAllBranchDes() ; for(int i=0;i<vBranchCode.size() ;i++){ if(vBranchCode.elementAt(i).toString().equals(User)){ root=vBranchName.elementAt(i).toString(); branchmap = vBranchDes.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, 130, 570));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -