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

📄 card.java

📁 这是一个在linux环境下
💻 JAVA
字号:
package fr.umlv.projet.fenetre.preformance.bigger;

import java.awt.CardLayout;
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

import fr.umlv.projet.fenetre.TabbedPane;
import fr.umlv.projet.fenetre.net.ReseauBigger;
import fr.umlv.projet.fenetre.preformance.PanelBas;
import fr.umlv.projet.procfs.CpuTime;
import fr.umlv.projet.procfs.Meminfo;
import fr.umlv.projet.procfs.NetStatus;
import fr.umlv.projet.procfs.Processuses;
import fr.umlv.projet.procfs.TestCpu;
/**
 * This class is used to create a Panel which use the CardLayout,
 * we wants to add four Panel to it:
 * <@link fr.umlv.projet.fenetre.preformance.bigger.CpuBigger CpuBigger>,
 * <@link fr.umlv.projet.fenetre.preformance.bigger.MemBigger memory>,
 * <@link fr.umlv.projet.fenetre.net.ReseauBigger Reseau> and
 * the JTabbedPanel created by class 
 * <fr.umlv.projet.fenetre.TabbedPane TabbedPanel>.
 * We use CardLayout here to swich the three Panels with the MouseListener to make the 
 * images bigger,it just like the task force in the windows.
 * @author HUANG Wei & MA Xiao Jun
 * @see fr.umlv.projet.fenetre.TabbedPane#creatTabbedPane(JFrame)
 */
public class Card  {
	private JTabbedPane jtp ;
	private static CpuBigger Cpu ;
	/**
	 * the JPanel created by fonction CreatCard(JFrame frame).
	 * @see fr.umlv.projet.fenetre.TabbedPane#creatTabbedPane(JFrame)
	 */
	private JPanel p = new JPanel();
	private static MemBigger Mem;

	private static ReseauBigger reseau;
	
	/**
	 * to control which Panel should be showed:Mem or jtp
	 */
	private boolean Mem_jtp = true;
	/**
	 * to control which Panel should be showed:Cpu or jtp
	 */
	private boolean Cpu_jtp = true;
	
	/**
	 * to control which Panel should be showed:Resaux or jtp
	 */
	private boolean Reseau_jtp = true;
	
/**
 * creat a Panel which use the CardLayout the member Mem_jtp Cpu_jtp and Reseau_jtp is to control
 * which Panel should be showed
 * @param frame the parameter of the fonction creatTabbedPane(frame),to creat a JTabbedPanel
 * @see fr.umlv.projet.fenetre.TabbedPane#creatTabbedPane(JFrame)
 * @return a JPanel which contains three Panel,and switch them by double click.
 */
	
	public JPanel CreatCard(JFrame frame){
		jtp = TabbedPane.creatTabbedPane(frame);
		final CardLayout cl=new CardLayout();
		p.setLayout(cl);
		Cpu = new CpuBigger();
		Mem = new MemBigger();
		reseau = new ReseauBigger();
		/******************Cpu*****************************/
		MouseListener ml_Cpu = new MouseListener(){
			public void mouseClicked(MouseEvent evt) {
				if(evt.getClickCount() == 2){
					if(Cpu_jtp == true)
						cl.next(p);
					else
						cl.first(p);
				Cpu_jtp = !Cpu_jtp;
				}
			}

			public void mousePressed(MouseEvent arg0) {
			}

			public void mouseReleased(MouseEvent arg0) {
			}

			public void mouseEntered(MouseEvent arg0) {
			}

			public void mouseExited(MouseEvent arg0) {
			}
			
		};
		/*******************Memoire*****************************/
		MouseListener ml_Mem = new MouseListener(){
			public void mouseClicked(MouseEvent evt) {
				if(evt.getClickCount() == 2){
					if(Mem_jtp == true)
						cl.show(p,"3");
					else
						cl.first(p);
					Mem_jtp = !Mem_jtp;
				}
			}

			public void mousePressed(MouseEvent arg0) {
			}

			public void mouseReleased(MouseEvent arg0) {
			}

			public void mouseEntered(MouseEvent arg0) {
			}

			public void mouseExited(MouseEvent arg0) {
			}
		};
		/*********************Resaux*************************/
		MouseListener ml_Resaux = new MouseListener(){
			public void mouseClicked(MouseEvent evt) {
				if(evt.getClickCount() == 2){
					if(Reseau_jtp == true)
						cl.last(p);
					else
						cl.first(p);
					Reseau_jtp = !Reseau_jtp;
				}
			}

			public void mousePressed(MouseEvent arg0) {
			}

			public void mouseReleased(MouseEvent arg0) {
			}

			public void mouseEntered(MouseEvent arg0) {
			}

			public void mouseExited(MouseEvent arg0) {
			}
			
		};
		TabbedPane.getPreformance().getHcpu().addMouseListener(ml_Cpu);
		TabbedPane.getPreformance().getcpu().addMouseListener(ml_Cpu);
		TabbedPane.getPreformance().getHf().addMouseListener(ml_Mem);
		TabbedPane.getPreformance().getfichier().addMouseListener(ml_Mem);
		TabbedPane.getPanelReseau().getPanelsend().addMouseListener(ml_Resaux);
		TabbedPane.getPanelReseau().getPanelrecive().addMouseListener(ml_Resaux);
		Cpu.addMouseListener(ml_Cpu);
		Mem.addMouseListener(ml_Mem);
		reseau.addMouseListener(ml_Resaux);
		p.add(jtp,"1");
		p.add(Cpu,"2");
		p.add(Mem,"3");
		p.add(reseau,"4");
		return p;
	}
	
/**
 * Refresh all parts with the realtime data.
 * @param d to define the abscissa of begining to draw de cell.
 * @param oldtime the system time of cpu before modification.
 * @param pb State Panel.
 */
	public static void refresh(int d ,CpuTime oldtime,PanelBas pb){
		Meminfo.update();
		NetStatus.loadNetStatus();
		int memfree = Integer.parseInt(Meminfo.getMemFree())+Integer.parseInt(Meminfo.getSwapFree());
		int memtotal = Integer.parseInt(Meminfo.getMemTotal())+Integer.parseInt(Meminfo.getSwapTotal());
		int memOccup = memtotal - memfree;
		int pourcent_mem = memOccup*100/memtotal;
		int send = (int)NetStatus.getRecieveSpeed();
		int receive = (int)NetStatus.getTransmitSpeed();
		////////////////////////////////
		CpuTime newtime = TestCpu.getnewtime();
		newtime.loadCpuTime();
		String cpuPourcent = TestCpu.changeFloatSize(TestCpu.calcul(oldtime,newtime),1);
		int cpuGraph = (int)(TestCpu.calcul(oldtime,newtime)*100);
		oldtime.setTime(newtime);
		///////////////////////////////
		Integer j = new Integer(pourcent_mem);
		
		TabbedPane.getPreformance().refreshHCpu(d,cpuGraph,Color.GREEN);
		Cpu.refresh(cpuGraph/100,cpuPourcent,d,cpuGraph);
		TabbedPane.getPreformance().refreshHF(d,j*100,Color.YELLOW);
		TabbedPane.getPreformance().refreshCpu(cpuGraph/100,cpuPourcent);
		TabbedPane.getPreformance().refreshfichier(memOccup,memtotal);
		Mem.refresh(memOccup,memtotal,d,j*100);
		TabbedPane.getPreformance().refreshPanelTotal(Processuses.getHandleNumber()+"",Processuses.getThreadNumber()+"",Processuses.getProcessNumber()+"");
		
		TabbedPane.getPreformance().refreshCharge(memOccup,memtotal,memOccup);
//		TabbedPane.preformance.refreshMemNoyau(Meminfo.getHugePages_Total(),Meminfo.getHugePages_Free(),Meminfo.getHugepagesize());
		TabbedPane.getPreformance().refreshMemoirPh(Meminfo.getMemTotal(),Meminfo.getMemFree(),Meminfo.getBuffers());
		TabbedPane.getPanelReseau().refresh(d,send,receive);
		reseau.refresh(d,receive,send);
		pb.refresh(Processuses.getProcessNumber(),cpuPourcent+"%",memOccup/1024+"/"+memtotal/1024+"MB");
		pb.repaint();
		Cpu.repaint();
		Mem.repaint();
		reseau.repaint();
		TabbedPane.getPreformance().repaint();
		TabbedPane.getPanelReseau().repaint();
	}
	
}

⌨️ 快捷键说明

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