我建立JTabbedPane的对象,包括两个panel
panelOne上画线图,panelTwo上什么都不做。如果在panelOne上会看到线图实时的变化,就象windows的"任务管理器"cpu利用率一样的图。
可是,如果切换到panelTwo后,panelOne画图的动做就停止了,什么时候切到panelOne上它才开始继续画图,这中间就会丢失一段线图。请老大们帮忙吧下面是代码:这是画图的线程,不管是在panelOne还是在panelTwo上,这个线程都不会停,可是在panelTwo上时就是不画线图了。
while (true) {
Dimension d = getSize();
if (d.width != w || d.height != h) {
w = d.width;
h = d.height;
bimg = (BufferedImage) createImage(w, h);
big = bimg.createGraphics();
big.setFont(font);
FontMetrics fm = big.getFontMetrics(font);
ascent = (int) fm.getAscent();
descent = (int) fm.getDescent();
}
repaint();

try {
thread.sleep(sleepAmount);
} catch (InterruptedException e) {
break;
}
}public static void main(String s[]) {
SystemMonitorPane demo = new SystemMonitorPane(null);
JTabbedPane jtp = new JTabbedPane();
demo.setUpUnit("%");
demo.setDownUnit("%");
demo.setShowGrids(10);
Runtime r = Runtime.getRuntime();
float freeMemory = (float) r.freeMemory();
float totalMemory = (float) r.totalMemory();
demo.setInfo(totalMemory - freeMemory, totalMemory);

jtp.addTab("测试1", demo);//加入panelOne
                  jtp.addTab("测试2", new JPanel());//加入panelTwo
JFrame f = new JFrame("Java2D Demo - MemoryMonitor");
f.getContentPane().add("Center", jtp);
f.pack();
f.setSize(new Dimension(200, 200));
f.setVisible(true);
demo.surf.start();
}