JAVA写的模拟收发器设备面板工作状态并输出图形界面

java模拟收发器工作状态,每个光口、电口、状态灯都可以跟随鼠标移动,显示提示信息。变异jiava代码生成class文件后,html文件调用。

源代码,可以在附件里下载

mb.java 源代码如下:

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.applet.*;

import java.net.URL;

import java.net.MalformedURLException;

public class Mb extends Applet//机架面板

{

Color BkColor=new Color(9,76,254);

final Color[] mycolor={new Color(0,255,0),new Color(198,195,198)};//0在线 1下线

String ip;

String JjNo;

String ledvalue;

String stylevalue;

public void init()

{

ip=getParameter("ip");

JjNo=getParameter("JjNo");

this.setLayout(new GridLayout(1,16));

for(int i=0;i<16;i++)

{

stylevalue=getParameter("style"+Integer.toString(i));

ledvalue=getParameter("led"+Integer.toString(i));

if (stylevalue == null) {

stylevalue = "255";

}

if (ledvalue == null){

ledvalue = "255";

}

add(new CcMb(i,stylevalue,ledvalue));

}

}

public boolean openurl(String avg)

{

URL url;

try

{

url = new URL("http://"+ip+"/cgi-bin/ccmain?jjno="+JjNo+"&ccno="+avg);

}

catch(MalformedURLException _ex)

{

System.out.println("URL not found.");

return true;

}

getAppletContext().showDocument(url, "_blank");

return true;

}

class CcMb extends JPanel implements ActionListener//插槽面板

{

Button JjIndex=null;

Label JjIdx=null;

final String[] CcStyle={"第1型号","第2型号","第3型号"};

String ledvalue;

int temp;

public CcMb(int j, String style, String led)

{

temp=Integer.valueOf(led).intValue();

ledvalue=Integer.toBinaryString(temp);

while(ledvalue.length()<8){

ledvalue="0"+ledvalue;

}

// this.add(new Label(ledvalue));}//////////////

this.setBackground(BkColor);

this.setLayout(new GridLayout(5,1));

this.setBorder(BorderFactory.createLineBorder(Color.gray));

if(Integer.parseInt(style)<16)

{

JjIndex=new Button(Integer.toString(j));

JjIndex.setBackground(BkColor);

JjIndex.addActionListener(this);

if(Integer.parseInt(style)==1)//自适应

{

add(JjIndex);

add(new FxPanel("电口 0",ledvalue.charAt(5)));//5

add(new FxPanel("电口 1",ledvalue.charAt(4)));//4

add(new sixLedPanel1(style,ledvalue));

add(new LxPanel("光口",ledvalue.charAt(3)));//3

}

else if(Integer.parseInt(style)==2)//100M

{

add(JjIndex);

add(new Label(""));

add(new FxPanel("电口",ledvalue.charAt(4)));//4

add(new sixLedPanel2(style,ledvalue));

add(new LxPanel("光口",ledvalue.charAt(3)));//3

}

}else

{

JjIdx=new Label(Integer.toString(j));

add(JjIdx);

}

}

public void actionPerformed(ActionEvent ev)

{

String label=ev.getActionCommand();

openurl(label);

}

}

class FxPanel extends JPanel//电口

{

int cl=1;

public FxPanel(String hint,char colorindex)

{

if(colorindex==‘1‘)

cl=0;

this.setBackground(BkColor);

this.setToolTipText(hint);

}

public void paintComponent(Graphics g)

{

super.paintComponent(g);

g.setColor(mycolor[cl]);

g.fill3DRect(5,5,20,30,false);

g.fill3DRect(25,10,5,20,false);

}

}

class LxPanel extends JPanel//光口

{

int cl=1;

public LxPanel(String hint,char colorindex)

{

if(colorindex==‘1‘)

cl=0;

this.setBackground(BkColor);

this.setToolTipText(hint);

}

public void paintComponent(Graphics g)

{

super.paintComponent(g);

g.setColor(mycolor[cl]);

g.fill3DRect(5,5,25,35,false);

g.fillArc(12,10,10,10,0,360);

g.fillArc(12,25,10,10,0,360);

}

}

class sixLedPanel1 extends JPanel//6个灯 自适应

{

public sixLedPanel1(String sty,String led)

{

this.setBackground(new Color(9,76,254));

this.setLayout(new GridLayout(2,3));

add(new LedPanel("SPD 1",led.charAt(6)));//6

add(new LedPanel("SPD 0",led.charAt(7)));//7

add(new LedPanel("电源",‘1‘));

add(new LedPanel("电口 1 Link",led.charAt(4)));//4

add(new LedPanel("电口 0 Link",led.charAt(5)));//5

add(new LedPanel("光口Link",led.charAt(3)));//3

}

}

class sixLedPanel2 extends JPanel//6个灯 100M

{

public sixLedPanel2(String sty,String led)

{

this.setBackground(new Color(9,76,254));

this.setLayout(new GridLayout(2,3));

add(new LedPanel("TP_TX",led.charAt(6)));//6

add(new LedPanel("光口Link",led.charAt(3)));//3

add(new LedPanel("FDXLED",led.charAt(7)));//7

add(new LedPanel("FX-T",led.charAt(5)));//5

add(new LedPanel("电口Link",led.charAt(4)));//4

add(new LedPanel("电源",‘1‘));

}

}

class LedPanel extends JPanel//一个灯

{

int ledx,ledy,ledr;

int cd=1;

public LedPanel(String hint,char clindex)

{

if(clindex==‘1‘)

cd=0;

this.setBackground(BkColor);

this.setToolTipText(hint);

}

public void paintComponent(Graphics g)

{

super.paintComponent(g);

g.setColor(mycolor[cd]);

g.fillArc(0,0,8,8,0,360);

}

}

}

mb.htm 文件如下:

<HTML>

<HEAD>

</HEAD>

<BODY BGCOLOR="ffffff">

<CENTER>

<APPLET

code = "Mb.class"

width = "570"

height = "220"

>

<param name=Ip value="192.168.3.254">

<param name=JjNo value=1>

<param name=style0 value=0>

<param name=led0 value=0>

<param name=style1 value=1>

<param name=led1 value=1>

<param name=style2 value=2>

<param name=led2 value=2>

<param name=style3 value=0>

<param name=led3 value=3>

<param name=style4 value=1>

<param name=led4 value=4>

<param name=style5 value=2>

<param name=led5 value=5>

<param name=style6 value=1>

<param name=led6 value=6>

<param name=style7 value=1>

<param name=led7 value=2>

<param name=style8 value=0>

<param name=led8 value=8>

<param name=style9 value=1>

<param name=led9 value=9>

<param name=style10 value=0>

<param name=led10 value=10>

<param name=style11 value=1>

<param name=led11 value=11>

<param name=style12 value=2>

<param name=led12 value=12>

<param name=style13 value=1>

<param name=led13 value=13>

<param name=style14 value=1>

<param name=led14 value=14>

<param name=style15 value=1>

<param name=led15 value=15>

</APPLET>

</CENTER>

</BODY>

</HTML>

时间: 2024-10-23 05:51:43

JAVA写的模拟收发器设备面板工作状态并输出图形界面的相关文章

做一个具有图片读入,写出,灰度化,黑白化的有图形界面的小软件

我们这一次的树莓基础的作业是做一个做一个具有图片读入,写出,灰度化,黑白化的小软件,我采用的是java,因为java有大量性能非常好的接口可用,譬如在图片这块,ImageIO,BufferedImage都是非常好用的,而我这一次作业也是使用这两个包. 首先我们要解决的是界面,界面可以直接用JFrame来打, 非常简单,我的界面有一个菜单栏和一个图片显示区,菜单栏有三个选项:文件,转换,保存,文件菜单有一个子菜单:打开文件,转换菜单有两个子菜单:变成灰度和变成黑白,保存菜单有三个子菜单:jpg,

java之 22天 GUI 图形界面编程(一)

转自:http://takeme.iteye.com/blog/1876850 GUI(图形用户界面) Java代码 1 import java.awt.Button; 2 import java.awt.FlowLayout; 3 import java.awt.Frame; 4 import java.awt.event.WindowAdapter; 5 import java.awt.event.WindowEvent; 6 7 /** 8 * GUI(图形用户界面) 9 * Graphi

1.30 Java周末总结①控制显示多少位小数位②读txt和写txt模拟ATM数据库

1.30 Java周末总结①控制显示多少位小数位②读txt和写txt模拟ATM数据库 一.控制显示多少位小数位 有些时候小数位数太多了,想保留多少位小数,这里介绍一种利用四舍五入保留想要的小数位数Math.round四舍五入到整数位,所以把小数乘以整10或整百,在除以整10或整百,就得到想要的位数了 double a = 3.14159265359;double weishu = 5;double b = Math.pow(10,weishu);a = Math.round(a*b)/b; 二.

java实现海康NVR/DVR设备工作状态获取

该功能需要到JNA的知识. 通过查阅海康设备网络SDK编程指南(DVR&NVR)可以知道海康SDK的调用方法都要同过如下过程: 虚线框的流程是可选部分,不会影响其他流程和模块的功能使用.具体的模块说明可以自行参考SDK开发文件. 主要功能代码: 测试例子,因此虚线部分功能不实现 1.初始化设备SDK:对整个网络SDK 系统的初始化,内存预分配等操作. 代码:HCNetSDK sdk = HCNetSDK.INSTANCE;    sdk.NET_DVR_Init();//返回booleaan值

基于HTML5快速搭建3D机房设备面板

以真实设备为模型,搭建出设备面板,并实时获取设备运行参数,显示在设备面板上,这相比于纯数值的设备监控系统显得更加生动直观.今天我们就在HT for Web的3D技术上完成设备面板的搭建. 我们今天模拟的设备是机房设备,先来目睹下最终效果:http://www.hightopo.com/demo/blog_3d_20150810/server.html 我来解释下这个模型,一个带有透明玻璃门的机柜,机柜里装有5台设备,门可以开合,设备可以插拔,那么我么该如何搭建这样的设备呢?方法不难,我们一步一步

优秀Java程序员必须了解的GC工作原理

一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能. 一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能.本篇文章首先简单介绍GC的工作原理之后,然后再对GC的几个关键问题进行

【转】优秀的Java程序员必须了解GC的工作原理

一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能.一个优秀的Java程序员必须了解GC的工作原理.如何优化GC的性能.如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统.实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能.本篇文章首先简单介绍GC的工作原理之后,然后再对GC的几个关键问题进行深

基于HT for Web 3D技术快速搭建设备面板

以真实设备为模型,搭建出设备面板,并实时获取设备运行参数,显示在设备面板上,这相比于纯数值的设备监控系统显得更加生动直观.今天我们就在HT for Web的3D技术上完成设备面板的搭建. 我们今天模拟的设备是机房设备,先来目睹下最终效果: 我来解释下这个模型,一个带有透明玻璃门的机柜,机柜里装有5台设备,门可以开合,设备可以插拔,那么我么该如何搭建这样的设备呢?方法不难,我们一步一步来. 我们先从设备开始,设备的示意图如下: 看起来有模有样的,其实呢,它就是一个长方体,然后在长方体的正面贴上一张

基于HT for Web 快速搭建3D机房设备面板

以真实设备为模型,搭建出设备面板,并实时获取设备运行参数,显示在设备面板上,这相比于纯数值的设备监控系统显得更加生动直观.今天我们就在HT for Web的3D技术上完成设备面板的搭建. 我们今天模拟的设备是机房设备,先来目睹下最终效果: 我来解释下这个模型,一个带有透明玻璃门的机柜,机柜里装有5台设备,门可以开合,设备可以插拔,那么我么该如何搭建这样的设备呢?方法不难,我们一步一步来. 我们先从设备开始,设备的示意图如下: 看起来有模有样的,其实呢,它就是一个长方体,然后在长方体的正面贴上一张