/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.gui; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.SwingConstants; import javax.swing.Timer; /** * Description of the Class * * @version $Revision: 1.6 $ * * */ public class MemoryPanel extends JPanel { private static final int REFRESH_DELAY = 1000; JButton forceGCButton = new JButton(); JLabel jLabel1 = new JLabel(); JTextField memoryLabel = new JTextField(); Timer timer; /** * Constructeur de MemoryPanel */ public MemoryPanel() { jbInit(); updateMemoryLabel(); timer = new Timer(REFRESH_DELAY, new ActionListener() { public void actionPerformed(ActionEvent evt) { updateMemoryLabel(); } }); timer.start(); } /** * Force le lancement du garbage collector. * * @param evt */ void forceGCButton_actionPerformed(ActionEvent evt) { System.gc(); System.runFinalization(); } /** */ void jbInit() { forceGCButton.setText("Forcer GC"); forceGCButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent evt) { forceGCButton_actionPerformed(evt); } }); memoryLabel.setToolTipText(""); memoryLabel.setEditable(false); memoryLabel.setMargin(new Insets(0, 10, 0, 10)); memoryLabel.setText("xx / xx"); memoryLabel.setColumns(15); memoryLabel.setHorizontalAlignment(SwingConstants.CENTER); jLabel1.setText("M�moire : "); this.add(jLabel1, null); this.add(memoryLabel, null); this.add(forceGCButton, null); } /** */ private void updateMemoryLabel() { memoryLabel.setText(((Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()) / 1000) + " / " + (Runtime.getRuntime().totalMemory() / 1000) + " ko"); } }