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 + -
显示快捷键?