1 package com.billkuker.rocketry.motorsim.debug;
\r
3 import java.lang.management.ManagementFactory;
\r
4 import java.lang.management.ThreadInfo;
\r
5 import java.lang.management.ThreadMXBean;
\r
7 import javax.swing.JTable;
\r
8 import javax.swing.SwingUtilities;
\r
9 import javax.swing.table.DefaultTableModel;
\r
11 public class ThreadsPanel extends JTable {
\r
12 private static final long serialVersionUID = 1L;
\r
14 private DefaultTableModel tm = new DefaultTableModel();
\r
15 static ThreadMXBean tmbean = ManagementFactory.getThreadMXBean();
\r
17 public ThreadsPanel() {
\r
18 tm.addColumn("Name");
\r
20 tm.addColumn("CPU");
\r
26 setName("Debug - Thread List");
\r
32 SwingUtilities.invokeLater(new Thread() {
\r
36 while (tm.getRowCount() > 0)
\r
39 long[] tids = tmbean.getAllThreadIds();
\r
40 ThreadInfo[] tinfos = tmbean.getThreadInfo(
\r
41 tids, Integer.MAX_VALUE);
\r
42 for (ThreadInfo ti : tinfos) {
\r
43 tm.addRow(new Object[] {
\r
46 tmbean.getThreadCpuTime(ti
\r
50 } catch (Exception e) {
\r
51 e.printStackTrace();
\r
57 } catch (Exception e) {
\r
58 e.printStackTrace();
\r