代码相当简单,显示当前正在运行的进程
Process p = Runtime.getRuntime().exec("TASKLIST");
BufferedReader reader = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
控制台上的输出我的格式正确
Image Name PID Session Name Session# Mem Usage
========================== ===================== ============
System Idle Process 0 Services 0 24 K
System 4 Services 0 1,260 K
svchost.exe 896 Services 0 7,060 K
taskmgr.exe 868 Console 2 13,300 K
WINWORD.EXE 5412 Console 2 39,860 K
iexplore.exe 5256 Console 2 69,104 K
eclipse.exe 1112 Console 2 1,788 K
javaw.exe 4380 Console 2 555,552 K
cmd.exe 1500 Console 2 3,264 K
conhost.exe 3120 Console 2 7,188 K
bash.exe 3360 Console 2 7,840 K
显示Jtextarea上代码的输出而不是
System.out.println(line);
我做了
textarea.append(line+"\n");
但文本区域上的格式显示不正确,因为在控制台上,
Image Name PID Session Name Session# Mem Usage
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 4 K
System 4 Services 0 10,024 K
smss.exe 324 Services 0 312 K
csrss.exe 436 Services 02,252 K
---------------------------------- UPDATE ------------ -------------------
通过更改Textarea的字体解决格式问题,现在它已正确对齐
答案 0 :(得分:0)
您可能想要使用JTable,使用JTable,所有内容都是行和列,就像电子表格一样。它可能需要比您现有的代码更多的代码,但请放心,它可以正常工作(如果编程正确)
首先,你需要一个像这样的二维数组:
private String[][] data = {
{"Example 1", "0.0.1", "Update"},
{"Example 2", "0.0.1", "Installed"}
};
一旦你有了这个,你需要一个像这样的列数组:
private String[] columns = {"Mod name", "Version", "Installed"};
一旦你拥有了这两个,你可以使用它来制作表格:
JTable table = new JTable(data, columns);
答案 1 :(得分:0)
似乎与控制台不同,textarea
使用的字体不是Monospaced Font。
将JTextArea
的字体设置为等宽字体(或逻辑Font.MONOSPACED
),或使用JTable
显示数据。
也可以查看this answer