JAVA程序实现监视----JAVA程序内存使用情况!

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

=========================================

package myprojects.jmemorydemo;

import Javax.swing.UIManager;

import java.awt.*;

public class JMemoryDemo {

private boolean packFrame = false;

public JMemoryDemo() {

MainFrame frame = new MainFrame();

if (packFrame) {

frame.pack();

}

else {

frame.validate();

}

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

Dimension frameSize = frame.getSize();

if (frameSize.height > screenSize.height) {

frameSize.height = screenSize.height;

}

if (frameSize.width > screenSize.width) {

frameSize.width = screenSize.width;

}

frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height)

/ 2);

frame.setVisible(true);

}

public static void main(String[] args)

{

new JMemoryDemo();

}

}

===================================================

package myprojects.jmemorydemo;

import javax.swing.*;

public class ProgressThread extends Thread {

JProgressBar pbar;

JLabel label;

public ProgressThread(JProgressBar pbar,JLabel label) {

this.pbar=pbar;

this.label=label;

}

public void run() {

int min=0;

int max=100;

int free=0;

int totle=0;

int status=0;

pbar.setMinimum(min);

pbar.setMaximum(max);

pbar.setValue(status);

while(true){

try{

totle=(int)(Runtime.getRuntime().totalMemory()/1024);

free=(int)(Runtime.getRuntime().freeMemory()/1024);

}catch(Exception e){

e.printStackTrace();

}

label.setText("Free Memory :"+(int)(Runtime.getRuntime().freeMemory()/1024)+"K"+" Totle Memory Allo

cated :"

+(int)(Runtime.getRuntime().totalMemory()/1024)+"K");

status=(int)(free*100/totle);

pbar.setValue(status);

pbar.setString("Free Momery "+ status+"%");

try{

this.sleep(1000);

}catch(InterruptedException err){}

}

}

}

===============================================

package myprojects.jmemorydemo;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class MainFrame extends JFrame {

private JPanel contentPane;

private BorderLayout borderLayout1 = new BorderLayout();

private JProgressBar jProgressBar1 = new JProgressBar();

private JLabel jLabel1 = new JLabel();

private JLabel jLabel2 = new JLabel();

public MainFrame() {

enableEvents(AWTEvent.WINDOW_EVENT_MASK);

try {

jbInit();

}

catch(Exception e) {

e.printStackTrace();

}

}

private void jbInit() throws Exception {

(MainFrame.class.getResource("[Your Icon]")));

contentPane = (JPanel) this.getContentPane();

contentPane.setLayout(borderLayout1);

this.setSize(new Dimension(304, 215));

this.setTitle("JMemoryDemo");

jLabel1.setFont(new java.awt.Font("Dialog", 0, 14));

jLabel1.setHorizontalAlignment(SwingConstants.CENTER);

jLabel1.setText("Memory Monitor");

jProgressBar1.setOrientation(JProgressBar.VERTICAL);

jProgressBar1.setFont(new java.awt.Font("Dialog", 0, 14));

jProgressBar1.setToolTipText("");

jProgressBar1.setStringPainted(true);

jLabel2.setFont(new java.awt.Font("Dialog", 0, 14));

jLabel2.setText("");

contentPane.add(jProgressBar1, BorderLayout.CENTER);

contentPane.add(jLabel1, BorderLayout.NORTH);

contentPane.add(jLabel2, BorderLayout.SOUTH);

ProgressThread pThread = new ProgressThread(this.jProgressBar1,this.jLabel2);

pThread.start();

}

protected void processWindowEvent(WindowEvent e) {

super.processWindowEvent(e);

if (e.getID() == WindowEvent.WINDOW_CLOSING) {

System.exit(0);

}

}

}

======================================================================

提示如下:

======================================================================

问题的要害:

totle=(int)(Runtime.getRuntime().totalMemory()/1024);

free=(int)(Runtime.getRuntime().freeMemory()/1024);

===================================================

有什么问题,可以发Email:dw5189@163.com

========================================

========================================

========================================

提供最新版的JCreator PRO build 3.00.094

http://www.jcreator.com/download.htm

Username: P145460-Brian Luke

Key: 00HE3T-MX6F41-7E9CFN-68745A-RD1PAJ-0GKKPP-YYJVDR-CXJXHG-6GFXX8

========================================

========================================

========================================

提供JCreator PRO build 2.50序列号:

注册码:

etalking

niit

P-etalking niit

36336-27630-63362-56226-23628

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航