- -无聊中...打造一个服务器观测台简陋:包括内存使用率等等

//-------------------------------------------------------------------------------------------------------
import java.applet.*;
import java.util.*;//系统属性
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.text.*;
import java.net.*;
import java.lang.String;

public class lwhf extends Applet{
 InetAddress myIPaddress=null;//网络对象
 private Date currentDate;//日期对象
    private SimpleDateFormat formatter;//日期的格式类型
 String lastdate;//存储日期
 Thread b1;//线程声明
 String sysname;//系统名称
 long sysio;//内存
 long sysioToo;//用于存储内存比较信息
 String sysioWing=new String();;//内存状态信息
 Runtime r=Runtime.getRuntime();//获得主要机器信息
// String bss=new String(""+System.getProperty("user.home")
//---------------------双重缓冲 
 Image MyImage; //存放备用屏幕的内容
 Graphics MyGs; //存储比用屏幕的画笔
/*createImage方法是定义在java.awt.Compont类中的
方法,由于我们的applet是它的子类,从而就自然地继承了该方法。
*/ 
//String cs2=new String(""+System.getProperty("user.home"));
 public void init()
 {
//r.

 sysioToo=r.freeMemory();//获得第一次启动时的空闲内存
 // username=new String(getParameter("n"));

 }
 class b extends Thread
 {
  public void run()
  {
  

   while(true) {
    repaint ();
  
  
     try {
      
   
      
     sysio=r.freeMemory();//获取内存
    
       if(sysioToo<sysio)//小于当前的空闲内存
       { 
         sysioToo=sysio;
         sysioWing="正常的内存消耗";
       }
        else if(sysio>(sysioToo/10)*8)
        {
         sysioWing="正常的内存消耗";
        }
      
         else if(sysio>(sysioToo/10)*6)
        {
         sysioWing="轻微的内存消耗";
        }
         else if(sysio>(sysioToo/10)*1)
        {
         sysioWing="严重的内存消耗";
        }
         
    
    
    
     Thread.sleep(600);
     
    
     } catch (InterruptedException e) {}
     }

  }


 }
 

 public void  start()
 {
  sysname=new String(""+System.getProperty("os.name")+"--"+System.getProperty("os.version")+"版");
  
   try
 {
  MyImage=createImage(getSize().width,getSize().height);//创建备用屏幕
  MyGs=MyImage.getGraphics();//获取备用屏幕的幻屏幕的画笔
  
  
  }
  catch(Exception e)
  {
   MyGs=null;//若出错,就置备用屏幕的绘图备用屏幕的画笔null
   
   
   }
  
  
  
  
  b1=new Thread(new b());
 
  try { myIPaddress=InetAddress.getLocalHost();}
  catch (UnknownHostException e) {}
  formatter = new SimpleDateFormat ("yyyy年/MMM/dd日EEE hh:mm:ss",
  Locale.getDefault());//设置日期的格式
   b1.start();//启动线程
  
  
  

  
  }
  public void stop()
  {
  sysname=null;
  sysio=0;
  b1.stop();//释放线程
  b1=null;//让出对象以便垃圾收集进程活动
  myIPaddress=null;
  formatter=null;
  MyGs=null;//释放备用屏幕的化笔-
  MyImage=null;//释放备用屏幕 
   }
 public void paint(Graphics g)
 {
 
  //setBackground(Color.DARK_GRAY);//设置背景颜色Color.BLUE蓝色,Color.GRAY灰色 
 // g.setColor(Color.);
  g.setColor(Color.DARK_GRAY);//首先设置画整个背景的颜色为深黑色
  g.fillRect(0,0,getSize().width,getSize().height);//画一个填充矩形----背景
  g.setColor(Color.black);//设置网格的颜色为黑色
  currentDate = new Date();//事例化日期对象
  lastdate = formatter.format(currentDate);//用格式化的日期对象填充要输出的字服对象
  
  
 
  
  int w=getSize().width/10;//计算屏幕的宽度并等分10分
  int h=getSize().height/10;//计算屏幕的高并等10份
  int p=h;//将屏幕高度的10之1给P
    
  
  
  

  
  Font f=new Font("TimesRoman" , Font.BOLD , 26);//设置左边的字体
  Font f1=new Font("TimesRoman" , Font.BOLD , 17);//设置右边的子体
  g.fillRect(0,0,3,getSize().height);//左边竖线
  g.fillRect(getSize().width-3,0,3,getSize().height);//右边的竖线
  g.fillRect(0,0,getSize().width,3);//上边的横县
  g.fillRect(0,getSize().height-3,getSize().width,3);//下边的横线
 
  g.fillRect(w*5-w/2,0,2,getSize().height);//左边竖线
  for(int i=0;i<=10;i++)
  {
   g.fillRect(0,p,getSize().width,2);//下边的横线
  
  p=p+h;
  
  }//Color.YELLOW黄色--Color.WHITE白色
  
   g.setColor(Color.green);
 
   
   g.setFont(f);
   g.drawString("监控项目",w,getSize().height/10-getSize().height/50);
   g.drawString("系统时间:",w,getSize().height/10*2-getSize().height/50);
   g.drawString("主机IP --:",w,getSize().height/10*3-getSize().height/50);
   g.drawString("操作系统:",w,getSize().height/10*4-getSize().height/50);
   g.drawString("分辨率 --:",w,getSize().height/10*5-getSize().height/50);
   g.drawString("可用颜色:",w,getSize().height/10*6-getSize().height/50);
   g.drawString("总的内存:",w,getSize().height/10*7-getSize().height/50);
   g.drawString("可用内存:",w,getSize().height/10*8-getSize().height/50);
   g.drawString("版本说明:",w,getSize().height/10*9-getSize().height/50);
   g.drawString("技术支持:",w,getSize().height/10*10-getSize().height/50);
   g.drawString("状态说明",w*6-w/10,getSize().height/10-getSize().height/50);//系统时间
   g.setFont(f1);
   
   g.drawString(lastdate,w*5-w/10,getSize().height/10*2-getSize().height/50);//系统时间
   g.drawString(""+myIPaddress,w*5-w/10,getSize().height/10*3-getSize().height/50);//本机ip
   g.drawString(sysname,w*5-w/10,getSize().height/10*4-getSize().height/50);//操作系统版本
   g.drawString(Toolkit.getDefaultToolkit().getScreenSize().width+"*"+ Toolkit.getDefaultToolkit().getScreenSize().height+"---推荐使用1024*768",w*5-w/10,getSize().height/10*5-getSize().height/50);//
   g.drawString(""+Toolkit.getDefaultToolkit().getMaximumCursorColors()+"--推荐65535或以上",w*5-w/10,getSize().height/10*6-getSize().height/50);//
   g.drawString(""+r.totalMemory()+"k",w*5-w/10,getSize().height/10*7-getSize().height/50);//
   g.drawString(""+sysio+"k"+"--"+sysioWing,w*5-w/10,getSize().height/10*8-getSize().height/50);//
   g.drawString("1.1升级版(解决图像闪动问题)",w*5-w/10,getSize().height/10*9-getSize().height/50);//
   g.drawString("QQ:273725113",w*5-w/10,getSize().height/10*10-getSize().height/50);//


//

}
public void update(Graphics g)
{

 
if(MyGs!=null){//如果备用屏幕创建成

super.paintComponents(MyGs);
paint(MyGs);
g.drawImage(MyImage,0,0,this); //将备用屏幕内容画到当前屏膒aint( )方法中所画的内容都将画在备用然后再调用drawImage( )方法将备用屏籵中的内容画到当前屏幕上

  
 }
 else
 //如果创建备用屏幕不成功的话,就和以前一样,将系统生成的当前屏幕的绘图上下文环境g传递给paint( )方法
 paint(g);
 }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值