我正在用java开发一个swing应用程序,它显示了我的pc上每个进程的内存使用情况。
结果应该出现在JTable中。
JTable包含4列:
JTable看起来像

JTable使用ProcessBuilder类刷新每个句点。
当用户看到这个方法的时候,我觉得这个问题有点慢,很无聊。
我的问题是:
还有其他强大的方法吗?或者我可以在代码中做些什么来增强这个应用程序?
在守则中:
javax.swing.JTable)中拖动的JTable。JLabel )中拖动的javax.swing.JLabel。
用于显示所有进程的方法是:
@SuppressWarnings(“空-语句”)私有getProcessList()抛出InterruptedException {私有DefaultTableModel表;字符串文件名= System.getProperty("java.io.tmpdir") + "\list.txt",h;//获取%tmp% Scanner sc1 = null;int i,j,k= 0;table = (javax.swing.table.DefaultTableModel) processTable.getModel();processTable.editingStopped(null);table.setRowCount(0);尝试{ ProcessBuilder builder =新ProcessBuilder("cmd.exe“、"/c”、“任务列表> %tmp%\list.txt");builder.redirectErrorStream(真);Process p= builder.start();p.waitFor();try { sc1 =新扫描程序(新文件(文件名));而(sc1.hasNext()) {h= sc1.nextLine();k++;}k=k-5;}System.out.println(“FileNotFoundException ex”){ System.out.println("File“+ filename +”Not“);};status.setText(“进程:”+ k);对象o[] =新Object4;i= 0;尝试{j= 0;sc1 =新文件(文件名);而(sc1.hasNext()) { st =新StringTokenizer(sc1.nextLine(),"\n");i++;if (i > 5) { while (st.hasMoreTokens()) { st1 =新StringTokenizer(st.nextToken(),“");if (st1.hasMoreTokens()) {o= st1.nextToken();} if (st1.hasMoreTokens()) {h= st1.nextToken();if (h.contains(".exe")) {o=o+“”+ h;o1 = st1.nextToken();} o1 = h;}如果(st1.hasMoreTokens()) { o2 = st1.nextToken();} if (st1.hasMoreTokens()) {h= st1.nextToken();} if (st1.hasMoreTokens()) { o3 = st1.nextToken();} if (st1.hasMoreTokens()) {h= st1.nextToken();} table.addRow(o);j++;}{ if (st.hasMoreTokens()) {h= st.nextToken();}} (FileNotFoundException ex) {System.out.println(“文件”+文件名+“未找到”);} System.out.println("UnknownError:“+ex.getMessage();}最后{ if ( Logger.getLogger(ProcessMan.class.getName()).log(Level.SEVERE,!= null) {sc1.lose();} catch (IOException ex) {IOException null,ex);}}发布于 2015-07-10 14:15:14
您可以通过以下方法加快速度,而不需要太多的更改:
否则,您可以使用本机:参见https://stackoverflow.com/a/13478716/15472中的一个示例。
https://stackoverflow.com/questions/31340972
复制相似问题