[Jarspy-commits] CVS: JarSpy/src/com/ociweb/gui MemoryMeter.java,1.2,1.3
Status: Beta
Brought to you by:
brown_j
|
From: Jeff B. <br...@us...> - 2002-09-17 23:51:42
|
Update of /cvsroot/jarspy/JarSpy/src/com/ociweb/gui
In directory usw-pr-cvs1:/tmp/cvs-serv15307
Modified Files:
MemoryMeter.java
Log Message:
refactor so a new Runnable is not instantiated every
few seconds when the ui needs to be updated
Index: MemoryMeter.java
===================================================================
RCS file: /cvsroot/jarspy/JarSpy/src/com/ociweb/gui/MemoryMeter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** MemoryMeter.java 17 Sep 2002 21:38:29 -0000 1.2
--- MemoryMeter.java 17 Sep 2002 23:51:36 -0000 1.3
***************
*** 40,43 ****
--- 40,45 ----
private DecimalFormat mFormatter = new DecimalFormat("###,###,###.#M");
+ private Runnable updateRunnable;
+
public MemoryMeter() {
this(DEFAULT_REFRESH_INTERVAL);
***************
*** 49,52 ****
--- 51,59 ----
progressBar.setStringPainted(true);
add(BorderLayout.CENTER, progressBar);
+ updateRunnable = new Runnable() {
+ public void run() {
+ updateDisplay();
+ }
+ };
}
***************
*** 60,80 ****
super.removeNotify();
}
public synchronized void start() {
stop();
refreshThread = new Thread() {
public void run() {
- Runtime runtime = Runtime.getRuntime();
try {
while (true) {
! final long totalMemory = runtime.totalMemory();
! long freeMemory = runtime.freeMemory();
! final long usedMemory = totalMemory - freeMemory;
! SwingUtilities.invokeLater(new Runnable() {
! public void run() {
! progressBar.setMaximum((int) totalMemory);
! progressBar.setValue((int) usedMemory);
! progressBar.setString(format(usedMemory, totalMemory));
! }
! });
Thread.sleep(refreshInterval);
}
--- 67,78 ----
super.removeNotify();
}
+
public synchronized void start() {
stop();
refreshThread = new Thread() {
public void run() {
try {
while (true) {
! SwingUtilities.invokeLater(updateRunnable);
Thread.sleep(refreshInterval);
}
***************
*** 88,91 ****
--- 86,99 ----
}
+ private synchronized void updateDisplay() {
+ Runtime runtime = Runtime.getRuntime();
+ final long totalMemory = runtime.totalMemory();
+ long freeMemory = runtime.freeMemory();
+ final long usedMemory = totalMemory - freeMemory;
+ progressBar.setMaximum((int) totalMemory);
+ progressBar.setValue((int) usedMemory);
+ progressBar.setString(format(usedMemory, totalMemory));
+ }
+
public synchronized void stop() {
try {
***************
*** 106,110 ****
private String format(long value) {
! if(value > 2200000) {
return mFormatter.format(value / 1000000f);
} else {
--- 114,118 ----
private String format(long value) {
! if (value > 2200000) {
return mFormatter.format(value / 1000000f);
} else {
***************
*** 112,115 ****
}
}
-
}
--- 120,122 ----
|