⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showdata.java

📁 远程采集系统嵌入式WEB端java applet动态曲线显示采集量的代码
💻 JAVA
字号:
import java.io.*; 
import java.net.*; 
import java.util.LinkedList;
import java.awt.*; 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.applet.*; 

public class Showdata extends java.applet.Applet 
implements Runnable,ActionListener{ 
	Font ft=new Font("宋体",Font.BOLD,30);
	Font ftbaner=new Font("宋体",Font.BOLD,35);
	Font vft=new Font("宋体",Font.BOLD,20);
	Thread dthread; 
	URL fileur; 
	String fileline=" "; 
	InputStream filecon = null; 
	DataInputStream filedata = null; 
	int quxian=0;
	 private Image offImg;//声明备用屏幕类型
	 private Graphics2D offG;//声明备用屏幕绘图类型
	// boolean bFirst=true;//第一次显示
	 
	 LinkedList llist;
	 LinkedList ilista,ilistb,ilistc,ilistd,iliste,ilistf;
	TextArea showarea;
	Label baner;
	Label lba;
	Label lbb;
	Label lbc;
	Label lbd;
	Label lbe;
	Label lbf;
	
	Label vlba,vlbb,vlbc,vlbd,vlbe,vlbf;
	Button cbta,cbtb,cbtc,cbtd,cbte,cbtf;
	
	String pa;
	String pb;
	String pc;
	String pd;
	String pe;
	String pf;
	
	int ipa,ipb,ipc,ipd,ipe,ipf;
	int ypa,ypb,ypc,ypd,ype,ypf;
	
	public void init() { 
		pa=new String("");
		pb=new String("");
		pc=new String("");
		pd=new String("");
		pe=new String("");
		pf=new String("");

		baner=new Label();
		lba=new Label("温度");
		lbb=new Label("湿度");
		lbc=new Label("空气");
		lbd=new Label("震动");
		lbe=new Label("噪音");
		lbf=new Label("XX参数");
		vlba=new Label("......");
		vlbb=new Label("......");
		vlbc=new Label("......");
		vlbd=new Label("......");
		vlbe=new Label("......");
		vlbf=new Label("......");
		cbta=new Button("动态曲线");
		cbtb=new Button("动态曲线");
		cbtc=new Button("动态曲线");
		cbtd=new Button("动态曲线");
		cbte=new Button("动态曲线");
		cbtf=new Button("动态曲线");
		
		llist=new LinkedList();
		ilista=new LinkedList<Integer>();
		ilistb=new LinkedList<Integer>();
		ilistc=new LinkedList<Integer>();
		ilistd=new LinkedList<Integer>();
		iliste=new LinkedList<Integer>();
		ilistf=new LinkedList<Integer>();
		
		setLayout(null);
		baner.setBounds(200, 5, 300, 35);
		baner.setFont(ftbaner);
		baner.setText("远程物理量的监控");
		lba.setBounds(5, 45, 120, 30);
		lbb.setBounds(130, 45, 120, 30);
		lbc.setBounds(255, 45, 120, 30);
		lbd.setBounds(380, 45, 120, 30);
		lbe.setBounds(505, 45, 120, 30);
		lbf.setBounds(630, 45, 120, 30);
		vlba.setBounds(5, 80, 120, 30);
		vlbb.setBounds(130, 80, 120, 30);
		vlbc.setBounds(255, 80, 120, 30);
		vlbd.setBounds(380, 80, 120, 30);
		vlbe.setBounds(505, 80, 120, 30);
		vlbf.setBounds(630, 80, 120, 30);
		cbta.setBounds(5, 115, 120, 30);
		cbtb.setBounds(130, 115, 120, 30);
		cbtc.setBounds(255, 115, 120, 30);
		cbtd.setBounds(380, 115, 120, 30);
		cbte.setBounds(505, 115, 120, 30);
		cbtf.setBounds(630, 115, 120, 30);
		lba.setFont(ft);
		lbb.setFont(ft);
		lbc.setFont(ft);
		lbd.setFont(ft);
		lbe.setFont(ft);
		lbf.setFont(ft);
		vlba.setFont(vft);
		vlbb.setFont(vft);
		vlbc.setFont(vft);
		vlbd.setFont(vft);
		vlbe.setFont(vft);
		vlbf.setFont(vft);
		cbta.setFont(vft);
		cbtb.setFont(vft);
		cbtc.setFont(vft);
		cbtd.setFont(vft);
		cbte.setFont(vft);
		cbtf.setFont(vft);
		
		add(baner);
		add(lba);
		add(lbb);
		add(lbc);
		add(lbd);
		add(lbe);
		add(lbf);
		
		add(vlba);
		add(vlbb);
		add(vlbc);
		add(vlbd);
		add(vlbe);
		add(vlbf);
		
		add(cbta);
		add(cbtb);
		add(cbtc);
		add(cbtd);
		add(cbte);
		add(cbtf);
		
		cbta.addActionListener(this);
		cbtb.addActionListener(this);
		cbtc.addActionListener(this);
		cbtd.addActionListener(this);
		cbte.addActionListener(this);
		cbtf.addActionListener(this);

		setBackground(Color.black);
		//setVisible(true);
		String url = "http://10.10.207.151/html/test.txt"; 
		try { fileur = new URL(url); } 
		catch ( MalformedURLException e) { 
			System.out.println("Can&acute;t get URL: " ); 
		} 
		try
		  {
		   offImg=createImage(getSize().width,getSize().height);//创建备用屏幕
		   offG=(Graphics2D)offImg.getGraphics();//获取备用屏幕绘图环境
		  }
		  catch(Exception e)
		  {
		   offG=null;
		   showStatus("备用屏幕初始化失败!");
		  }
	} 

	public void start() { 	
		if (dthread == null) 
		{ 
			dthread = new Thread(this); 
			dthread.start(); 
		} 
	} 

	public void stop() { 
		if (dthread != null) { 
			dthread.stop(); 
			dthread = null; 
		} 
	} 

	public void run() { 
			
		while(true){ 
			try { 
				filecon = fileur.openStream(); 
				filedata = new DataInputStream(filecon); 
				while ((fileline = filedata.readLine()) != null) { 
					pa=fileline.substring(0, fileline.indexOf("a"));
					pb=fileline.substring(fileline.indexOf("a")+1, fileline.indexOf("b"));
					pc=fileline.substring(fileline.indexOf("b")+1, fileline.indexOf("c"));
					pd=fileline.substring(fileline.indexOf("c")+1, fileline.indexOf("d"));
					pe=fileline.substring(fileline.indexOf("d")+1, fileline.indexOf("e"));
					pf=fileline.substring(fileline.indexOf("e")+1, fileline.indexOf("f"));
					
					llist.addFirst(pa);
					if(llist.size()>200){
						llist.removeLast();
					}
					ipa=Integer.parseInt(pa);
					ipb=Integer.parseInt(pb);
					ipc=Integer.parseInt(pc);
					ipd=Integer.parseInt(pd);
					ipe=Integer.parseInt(pe);
					ipf=Integer.parseInt(pf);
					
					System.out.println(ipa);
					ypa=500-(int)(((double)ipa/4096)*300);
					ypb=500-(int)(((double)ipb/4096)*300);
					ypc=500-(int)(((double)ipc/4096)*300);
					ypd=500-(int)(((double)ipd/4096)*300);
					ype=500-(int)(((double)ipe/4096)*300);
					ypf=500-(int)(((double)ipf/4096)*300);
					System.out.println(ypa);
					ilista.addFirst(ypa);
					ilistb.addFirst(ypb);
					ilistc.addFirst(ypc);
					ilistd.addFirst(ypd);
					iliste.addFirst(ype);
					ilistf.addFirst(ypf);
					
					if(ilista.size()>200){
						ilista.removeLast();
						ilistb.removeLast();
						ilistc.removeLast();
						ilistd.removeLast();
						iliste.removeLast();
						ilistf.removeLast();
					}
					vlba.setText(pa);
					vlbb.setText(pb);
					vlbc.setText(pc);
					vlbd.setText(pd);
					vlbe.setText(pe);
					vlbf.setText(pf);
					
				} 
				
			} 

			catch (IOException e) { 
				System.out.println("Error in I/O:" + e.getMessage()); 
			} 
			try{ 
				dthread.sleep(1000); 
			} 
			catch (InterruptedException e){} 
			repaint(); 
		} 
	} 
	public void paint(Graphics g) {
		//offG.setColor(Color.BLACK);
		offG.clearRect(0, 0, getWidth(), getHeight());
		//offG.drawString("远程室内监控系统", 300, 200);
		//offG.setColor(Color.BLUE);
		
		offG.setColor(Color.white);
		offG.setStroke(new BasicStroke());
		offG.drawLine(50, 200, 750, 200);//上横框边线
		offG.drawLine(750, 200, 750, 500);//右竖框边线
		offG.setColor(Color.orange);
		offG.drawLine(50, 160, 50, 500);//左竖框边线
		offG.drawLine(50, 500, 780, 500);//下横框边线
		
		offG.drawLine(40, 170, 50, 160);
		offG.drawLine(60, 170, 50, 160);//竖箭头
		offG.drawLine(770, 490, 780, 500);
		offG.drawLine(770, 510, 780, 500);//横箭头  
		
		for(int c=0;c<=10;c++){
			offG.drawString(Integer.toString(c*500), 15, (500-30*c));
			if(c>=1)
			offG.drawString(Integer.toString(c*23), 40+70*c, 520);
		}
		offG.setColor(Color.white);
		float dash[] = { 4.0f };
		  BasicStroke bs = new BasicStroke(1.0f, BasicStroke.CAP_BUTT,
		    BasicStroke.JOIN_MITER, 10.0f, dash, 0.0f);
		offG.setStroke(bs);
		for(int b=1;b<10;b++){
			offG.drawLine(50+70*b, 200, 50+70*b, 500);
			offG.drawLine(50, 200+30*b, 750,200+30*b);
			
		}
		//float dash2[] = { 4.0f };
		  BasicStroke bs2 = new BasicStroke(1.0f, BasicStroke.CAP_ROUND,
		    BasicStroke.JOIN_MITER);
		  offG.setStroke(bs2);
		switch (quxian) {
		case 0:
			//BasicStroke defbs=new BasicStroke();
			//defbs=offG.getStroke();
			
			offG.setColor(Color.red);
			for(int a=0;a<ilista.size()-1;a++){
				offG.drawLine(a*3+50, (Integer)ilista.get(a), (a+1)*3+50, (Integer)ilista.get(a+1));
			}
			break;
		case 1:
			offG.setColor(Color.BLUE);
			for(int a=0;a<ilistb.size()-1;a++){
				offG.drawLine(a*3+50, (Integer)ilistb.get(a), (a+1)*3+50, (Integer)ilistb.get(a+1));
			}
			break;
		case 2:
			offG.setColor(Color.yellow);
			for(int a=0;a<ilistc.size()-1;a++){
				offG.drawLine(a*3+50, (Integer)ilistc.get(a), (a+1)*3+50, (Integer)ilistc.get(a+1));
			}
			break;
		case 3:
			offG.setColor(Color.cyan);
			for(int a=0;a<ilistd.size()-1;a++){
				offG.drawLine(a*3+50, (Integer)ilistd.get(a), (a+1)*3+50, (Integer)ilistd.get(a+1));
			}
			break;
		case 4:
			offG.setColor(Color.pink);
			for(int a=0;a<iliste.size()-1;a++){
				offG.drawLine(a*3+50, (Integer)iliste.get(a), (a+1)*3+50, (Integer)iliste.get(a+1));
			}
			break;
		case 5:
			offG.setColor(Color.GREEN);
			for(int a=0;a<ilistf.size()-1;a++){
				offG.drawLine(a*3+50, (Integer)ilistf.get(a), (a+1)*3+50, (Integer)ilistf.get(a+1));
			}
			break;
		default:
			break;
		}
		
		
		if(offG!=null)
		g.drawImage(offImg,0,0,this);
		
	}
	public void update(Graphics g)
	 {
	   paint(g);
	 }
	
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==cbta){
			quxian=0;
			repaint();
		}
		if(e.getSource()==cbtb){
			quxian=1;
			repaint();
		}
		if(e.getSource()==cbtc){
			quxian=2;
			repaint();
		}
		if(e.getSource()==cbtd){
			quxian=3;
			repaint();
		}
		if(e.getSource()==cbte){
			quxian=4;
			repaint();
		}
		if(e.getSource()==cbtf){
			quxian=5;
			repaint();
		}
	}
} 

⌨️ 快捷键说明

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