我尝试从远程主机获取系统信息,并将其显示在新窗口中。
我的代码如下:
public static void executedisplaySystemInfo(Table table, Login login) {
Thread t = new Thread(new Runnable() {
public void run() {
displaySystemInfo(table,login);
}
});
t.start();
}
public static void displaySystemInfo (Table table, Login login) {
for(TableItem tableItem : table.getItems()){
try {
if(tableItem.getChecked()) {
String a = output.getOutputFromProgram("cmd.exe /c systeminfo /s " + tableItem.getText(3) + " /U .\\" + SettingsManager.getSetting(login, "Current-User") + " /p " + SettingsManager.getSetting(login, SettingsManager.getSetting(login, "Current-User")+"-PW"));
Display.getDefault().asyncExec(new Runnable() {
public void run() {
JFrame systeminfoFrame = new JFrame();
systeminfoFrame.setTitle( tableItem.getText(3) + ": Ausgabe" );
systeminfoFrame.setSize(600, 700);
JPanel panel = new JPanel();
JTextArea systeminfotext = new JTextArea(40,50);
systeminfotext.setText(a);
systeminfotext.setLineWrap(true);
systeminfotext.setWrapStyleWord(true);
JScrollPane scrollpane = new JScrollPane(systeminfotext);
panel.add(scrollpane);
systeminfoFrame.add(panel);
systeminfoFrame.setVisible(true);
}
});
}
}
catch (IOException e) {
}
}
}
我已经准备使用Display.getDefault()。asyncExec(new Runnable()来将线程信息传递给ui线程,但是无论如何都会获得“无效的线程访问”。
这有什么不对?
感谢您的帮助。
hex