realtimetrafficapplet.java

来自「This code is trend chart for realtime mo」· Java 代码 · 共 666 行 · 第 1/2 页

JAVA
666
字号
	  int[] readTuple(int res[])
	    throws IOException
	  {
	    //TRACE("readTuple(" + res + ")");
	    if(m_input == null)
	      return null;
	    String line = null;
	    for(;;) {
	      //line = m_input.readLine();
	      line = readLine();
	      //TRACE("readLine() => '" + line + "'");
	      if(line == null)
	        return null;
	      if(line.charAt(0) == ';')
	        continue;
	      break;
	    }
	    // get performance data
	    int iPosStart = 0;
	    for(int iChannel = 0; iChannel < res.length; iChannel++)
	    {
	      //TRACE("line: '" + line + "'");
	      String str = null;
	      int iPos = 0;
	      // isolate channel data into a str
	      for(;;) 
	      {
	        iPos = line.indexOf(' ', iPosStart);
	        if(iPos < 0) {
	          str = line.substring(iPosStart);
	        } else if(iPos == iPosStart) {
	          iPosStart++;
	          continue;
	        } else {
	          str = line.substring(iPosStart, iPos);
	        }
	        break;
	      }
	      try
	      {
	        //TRACE("About to parse:" + str );
	        res[iChannel] = Integer.parseInt(str);
	      }
	      catch(NumberFormatException x)
	      {
	        TRACE("Caught: " + x + " while parsing '" + str + "'");
	        res[iChannel] = 0;
	      }
	      // advance
	      if(iPos < 0)
	        break;
	      iPosStart = iPos + 1;
	    }
	    //TRACE("--" + line+" extracted: "+res[0]+" "+res[1]);
	    return res;
	  }//end readTuple


	  private synchronized void processTuple(int tuple[])
	  {
		for(int g = 0; g < tuple.length; g++)  {
			System.out.println("传给m_chart的参数值依次是\t" + tuple[g]);
		}
		System.out.println("传参结束le ");
	    trendChart.addReading(tuple);
	    outputChart.addReading(tuple[0]);
	    inputChart.addReading(tuple[1]);
	    
	    labelsProcess(tuple);
	  }


	  static final int iBorderThickness = 2;
	/**
	   * overwrite this method of java.awt.Container
	   */
	  public Insets getInsets()
	  {
	    int iThickness = m_bShowBorder ? iBorderThickness : 0;
	    return new Insets(iThickness/*top*/, iThickness/*left*/, 
	      iThickness/*bottom*/, iThickness/*right*/);
	  }
	  /**
	   * overwrite this method to paint the insets
	   */
	  public void paint(Graphics g)
	  {
	    if(m_bShowBorder) {
	      // paint the non-client area
	      Dimension d = getSize();
	      Color colorNW = new Color(194, 194, 194);//north west
	      Color colorSE = new Color(100, 100, 100);//south east
	      for(int i = 0; i < iBorderThickness; i++)
	        draw3DRect(g, i, i, d.width - i * 2 - 1, d.height - i * 2 - 1, colorNW, colorSE);
	    }
	    // paint the client area
	    super.paint(g);
	  }
	  void draw3DRect(Graphics g, int x, int y, int width, int height, Color colorNW, Color colorSE)
	  {
	    g.setColor(colorNW);
	    g.drawLine(x, y, x, y + height);
	    g.drawLine(x + 1, y, x + width - 1, y);
	    g.setColor(colorSE);
	    g.drawLine(x + 1, y + height, x + width, y + height);
	    g.drawLine(x + width, y, x + width, y + height - 1);
	  }
	  

	  /** low level utility */
	  private int getIntParameter(String paramName, int iDefault, int iMin, int iMax)
	  {
	    int iRes = getIntParameter(paramName, iDefault);
	    if(iRes < iMin)
	      return iMin;
	    if(iRes > iMax)
	      return iMax;
	    return iRes;
	  }
	  
	  /** low level utility */
	  private int getIntParameter(String paramName, int iDefault)
	  {
		/*iDefault 是一个默认值,如果能从html tag中得到参数,
	    *就把这个参数传给调用这个方发的,如果得不到参数,那么返回一个默认值
	    *
	    */
	    String str = getParameter(paramName);
	    if(str != null)
	    {
	      try
	      {
	        int iRes = Integer.parseInt(str);
	        return iRes;
	      }
	      catch(Exception x)
	      {
	      }
	    }
	    return iDefault;
	  }
	  
	  /** low level utility 
	   * 直接从html tag 中取得颜色值,在java中事没有办法使用的
	   * 因此我们必须经过 相应的字串处理
	   * */
	  private Color getColorParameter(String paramName)
	  {
	    String str = getParameter(paramName);
	    if(str != null)
	    {
	      try
	      {
	        if(str.startsWith("#"))
	          str = str.substring(1);
	        int iRGB = Integer.parseInt(str, 16);
	        return new Color(iRGB);
	      }
	      catch(Exception x)
	      {
	      }
	    }
	    return null;
	  }
	  

	  /** debugging utility */
	  public static void TRACE(String msg)
	  {
//	    System.out.println("[" + Thread.currentThread().getName() + "] " +
//	      getClass().getName() + "@" + hashCode()
//	      + ": " + msg);
		  System.out.println("消息\t" + msg);
	  }
	  /**
	   * label view process
	   * tuple[0] = input
	   * tuple[1] = output
	   */
	  private void labelsProcess(int[] tuple){
		  if(tuple[0] > maxInput){
			  maxInput = tuple[0];
		  }
		  if(tuple[1] > maxOutput){
			  maxOutput = tuple[1];
		  }
		  jLabel_Input.setText(String.valueOf(tuple[0]));
		  jLabel_Output.setText(String.valueOf(tuple[1]));
		  jLabel_MaxInput.setText(String.valueOf(maxInput));
		  jLabel_MaxOutput.setText(String.valueOf(maxOutput));
	  }
	  
	
	
	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jLabel21 = new JLabel();
			jLabel21.setBounds(new java.awt.Rectangle(520,335,24,15));
			jLabel21.setText("Mbps");
			jLabel21.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jLabel20 = new JLabel();
			jLabel20.setBounds(new java.awt.Rectangle(520,300,24,15));
			jLabel20.setText("Mbps");
			jLabel20.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jLabel_MaxOutput = new JLabel();
			jLabel_MaxOutput.setBounds(new java.awt.Rectangle(451,300,30,15));
			jLabel_MaxOutput.setText("1500");
			jLabel_MaxOutput.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jLabel_MaxInput = new JLabel();
			jLabel_MaxInput.setBounds(new java.awt.Rectangle(451,335,30,15));
			jLabel_MaxInput.setText("1500");
			jLabel_MaxInput.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jLabel17 = new JLabel();
			jLabel17.setBounds(new java.awt.Rectangle(322,335,84,15));
			jLabel17.setText("\u6d41\u51fa\u6700\u5927\u901f\u7387\uff1a");
			jLabel17.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jLabel16 = new JLabel();
			jLabel16.setBounds(new java.awt.Rectangle(322,300,84,15));
			jLabel16.setText("\u6d41\u5165\u6700\u5927\u901f\u7387\uff1a");
			jLabel16.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jLabel15 = new JLabel();
			jLabel15.setBounds(new java.awt.Rectangle(224,335,41,15));
			jLabel15.setText("Mbps");
			jLabel15.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jLabel14 = new JLabel();
			jLabel14.setBounds(new java.awt.Rectangle(222,300,42,15));
			jLabel14.setText("Mbps");
			jLabel14.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jLabel_Output = new JLabel();
			jLabel_Output.setBounds(new java.awt.Rectangle(129,300,38,15));
			jLabel_Output.setText("1000");
			jLabel_Output.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jLabel_Input = new JLabel();
			jLabel_Input.setBounds(new java.awt.Rectangle(129,335,38,15));
			jLabel_Input.setText("1000");
			jLabel_Input.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jLabel11 = new JLabel();
			jLabel11.setBounds(new java.awt.Rectangle(34,335,60,15));
			jLabel11.setText("\u6d41\u51fa\u901f\u7387\uff1a");
			jLabel11.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jLabel10 = new JLabel();
			jLabel10.setBounds(new java.awt.Rectangle(34,300,60,15));
			jLabel10.setText("\u6d41\u5165\u901f\u7387\uff1a");
			jLabel10.setFont(new Font("\u5b8b\u4f53", Font.PLAIN, 12));
			jLabel9 = new JLabel();
			jLabel9.setBounds(new java.awt.Rectangle(34,261,128,18));
			jLabel9.setFont(new java.awt.Font("Dialog", java.awt.Font.PLAIN, 12));
			jLabel9.setText("流量实时信息:");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getNChart(), null);
			jContentPane.add(jLabel9, null);
			jContentPane.add(jLabel10, null);
			jContentPane.add(jLabel11, null);
			jContentPane.add(jLabel_Input, null);
			jContentPane.add(jLabel_Output, null);
			jContentPane.add(jLabel14, null);
			jContentPane.add(jLabel15, null);
			jContentPane.add(jLabel16, null);
			jContentPane.add(jLabel17, null);
			jContentPane.add(jLabel_MaxInput, null);
			jContentPane.add(jLabel_MaxOutput, null);
			jContentPane.add(jLabel20, null);
			jContentPane.add(jLabel21, null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes nChart	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getNChart() {
		if (nChart == null) {
			jLabel8 = new JLabel();
			jLabel8.setBounds(new java.awt.Rectangle(434,217,38,18));
			jLabel8.setFont(new java.awt.Font("Dialog", java.awt.Font.PLAIN, 12));
			jLabel8.setText("流出");
			jLabel7 = new JLabel();
			jLabel7.setOpaque(true);
			jLabel7.setBounds(new java.awt.Rectangle(395,217,25,18));
			jLabel7.setBackground(java.awt.Color.green);
			jLabel7.setText("");
			jLabel6 = new JLabel();
			jLabel6.setBounds(new java.awt.Rectangle(210,217,38,18));
			jLabel6.setFont(new java.awt.Font("Dialog", java.awt.Font.PLAIN, 12));
			jLabel6.setText("流入");
			jLabel5 = new JLabel();
			jLabel5.setBounds(new java.awt.Rectangle(163,217,26,18));
			jLabel5.setOpaque(true);
			jLabel5.setBackground(new java.awt.Color(102,153,255));
			jLabel5.setText("");
			//jLabel4 = new JLabel();
			trendChart.setBounds(new java.awt.Rectangle(80,7,439,204));
			//jLabel4.setText("JLabel");
			//jLabel3 = new JLabel();
			outputChart.setBounds(new java.awt.Rectangle(523,31,72,207));
			//jLabel3.setText("output");
			//jLabel2 = new JLabel();
			inputChart.setBounds(new java.awt.Rectangle(5,31,72,206));
			//jLabel2.setText("input");
			jLabel1 = new JLabel();
			jLabel1.setBounds(new java.awt.Rectangle(551,7,38,18));
			jLabel1.setFont(new java.awt.Font("Dialog", java.awt.Font.PLAIN, 12));
			jLabel1.setText("流出");
			jLabel = new JLabel();
			jLabel.setBounds(new java.awt.Rectangle(34,8,38,18));
			jLabel.setFont(new java.awt.Font("Dialog", java.awt.Font.PLAIN, 12));
			jLabel.setText("流入");
			nChart = new JPanel();
			nChart.setLayout(null);
			nChart.setBounds(new java.awt.Rectangle(0,0,600,240));
			nChart.add(jLabel, null);
			nChart.add(jLabel1, null);
			nChart.add(inputChart, null);
			nChart.add(outputChart, null);
			nChart.add(trendChart, null);
			nChart.add(jLabel5, null);
			nChart.add(jLabel6, null);
			nChart.add(jLabel7, null);
			nChart.add(jLabel8, null);
		}
		return nChart;
	}

}  //  @jve:decl-index=0:visual-constraint="9,10"

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?