该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
outStream.close();
inputStream.close();
errorStream.close();
process.destroy();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
this.setLocationRelativeTo(null);
this.setVisible(true);
messagePane.cleanCmd();
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new ConsoleGUI();
}
});
}
class ErrorWorker extends SwingWorker {
@Override
protected void process(List chunks) {
for (String string : chunks) {
messagePane.addData(string);
}
}
@Override
protected String doInBackground() throws Exception {
byte[] buf = new byte[1024];
int size;
while (true) {
if ((size = errorStream.read(buf)) != -1) {
String org = new String(buf, 0, size, "gbk");
String[] lines = org.split("\\n");
if (lines != null) {
for (int i = 0; i < lines.length; i++) {
publish(lines[i]);
}
}
}
}
}
}
class InputWorker extends SwingWorker {
public InputWorker() {
addPropertyChangeListener(new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
if ("cmd".equals(evt.getPropertyName())) {
messagePane.setCmdTip(evt.getNewValue());
}
}
});
}
@Override
protected void process(List chunks) {
for (String string : chunks) {
messagePane.addData(string);
}
}
@Override
protected String doInBackground() throws Exception {
byte[] buf = new byte[1024];
int size;
while (true) {
if ((size = inputStream.read(buf)) != -1) {
String org = new String(buf, 0, size, "gbk");
String[] lines = org.split("\\n");
if (lines != null && lines.length > 0) {
for (int i = 0; i < lines.length - 1; i++) {
//给予一定的延时,保证正常信息在错误信息之后显示
Thread.sleep(10);
publish(lines[i]);
}
firePropertyChange("cmd", null,
lines[lines.length - 1]);
}
}
}
}
}
}