📄 card.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 + -