Всем привет
есть фрейм на который приходят сообщения с system.out
| Код | import java.awt.BorderLayout; import java.awt.Container; import java.awt.TextArea; import java.io.*; import javax.swing.JFrame;
public class test {
private JFrame f;
private TextArea ta = new TextArea();
private PrintStream aPrintStream = new PrintStream(new FilteredStream( new ByteArrayOutputStream()));
private Thread ttest;
public test() { ttest = new Thread() { public synchronized void run() { f = new JFrame("test"); f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
Container panel = f.getContentPane(); panel.setLayout(new BorderLayout()); ta.setEditable(false); panel.add("Center", ta);
f.pack(); f.setSize(640, 480); f.setIconImage(null); f.setLocationRelativeTo(null); f.requestFocus(); f.setVisible(true);
System.setOut(aPrintStream); } }; ttest.start(); } private class FilteredStream extends FilterOutputStream { public FilteredStream(OutputStream aStream) { super(aStream); } public synchronized void write(byte b[]) throws IOException { String aString = new String(b); ta.append(aString); }
public synchronized void write(byte b[], int off, int len) throws IOException { String str = new String(b, off, len); ta.append(str); } } public static void main(String[] args) { new test(); } }
|
этот фрейм вызывается из главной программы, которая посылает system.out.print() на этот фрейм. фрейм вызывается каждые 5 сек, или даже чаще, через новый thread. т.к строчек выдаётся много, то конец system.out.print(), строк 5-10, переходит на только что открывшийся фрейм
как разделить system.out для каждого отдельного thread-а, чтобы начало и конец thread-а соответствовало выдачи system.out.print()
Добавлено через 2 минуты и 37 секунд просьба перенести тему в правильный раздел (Java) |