processwindata.java

来自「一个agent 工具包,可以开发移动设备应用,考虑了安全措施」· Java 代码 · 共 108 行

JAVA
108
字号
package SOMA.resourceManagement.windows;


import SOMA.resourceManagement.*;
import SOMA.resourceManagement.res.*;

import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import javax.swing.event.*;



public class ProcessWinData extends AbstractTableModel
	implements TableCellRenderer,ListSelectionListener,MonitoringManagerListener{

protected String[] head={"Name","CPU","","Memory",""};

protected ProcessWinDet detail;
protected int current_detail;
protected ProcessInfo[] data;
protected PlaceResourceManager prm;


public ProcessWinData(PlaceResourceManager prm){
		super();
		this.prm = prm;
		prm.monitoringManager.addMonitoringManagerListener(this);
    data=null;
	  current_detail=0;
	  detail=new ProcessWinDet();
	}


public void update(ProcessInfo[] data){
  this.data=data;
  fireTableDataChanged();
  if(current_detail>=data.length) current_detail=0;
  detail.update(data[current_detail]);
	}


public int getColumnCount()
	{return 5;}


public String getColumnName(int columnIndex)
	{return head[columnIndex];}


public int getRowCount() {
  if(data==null) return 0;
	return data.length;
  }


public Object getValueAt(int r, int c) {
  switch(c){
  	case 0:return data[r].name;
  	case 1:return ((int)data[r].cpu)+"%";
  	case 2:return new Integer((int)data[r].cpu);
    case 3:if(data[r].phys_mem<1048576)
             return data[r].phys_mem/1024+"K";
           return data[r].phys_mem/1048576+"M";
    case 4:return new Integer((int)data[r].phys_mem);
    }
  return null;
  }


public Class getColumnClass(int c){
	if(c==2 || c==4) return Integer.class;
	return String.class;
	}


public Component getTableCellRendererComponent(JTable table, Object value,
          boolean isSelected, boolean hasFocus, int r, int c) {
	if(value instanceof Integer){
		if(c==2) return new CpuBar(((Integer)value).intValue());
		if(c==4) return new MemBar(((Integer)value).intValue(),(int)data[r].total_mem/8);
		}
	return new JLabel("?");
	}


public void valueChanged(ListSelectionEvent e){
  current_detail=e.getLastIndex();
  detail.update(data[current_detail]);
	}


public ProcessWinDet getDetail()
	{return detail;}


public void exit()
	{prm.monitoringManager.removeMonitoringManagerListener(this);}


public void alarm(MonitoringManagerEvent ev){}
public void update(AgentInfo[] data){}
public void update(NetworkInfo data){}




}

⌨️ 快捷键说明

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