2013-09-20 2 views
1

Есть ли способ создать свой собственный System.out? Я хочу иметь класс «MyConsole» с атрибутом out (PrintWriter) и отправлять из всех сообщений txt-сообщений, которые будут напечатаны в JTextArea (например, System.out, распечатать все сообщения в консоли), не создавать экземпляр этого файла во всех классов или передать его в атрибутахJava Make Own System.out

+0

не как статичная ссылка, не делая некоторые действительно плохой дизайн. –

+2

Если вам действительно нужно, создайте свой собственный «PrintWriter», а затем используйте «System.setOut (myPrintWriter)», чтобы каждый вывод на консоль был перенаправлен на ваш принтер. – BackSlash

+0

Я хочу иметь несколько «System.out», чтобы связать больше консолей. –

ответ

0

Создайте статический конечный класс и статические методы и используйте его в приложении. Статический метод можно напрямую вызвать без создания экземпляра класса.

+0

могу ли я ссылаться jtextarea из моего JFrame в статическом финальном классе? –

2

мне нужно что-то вроде: экс Console1.out.println (Сообщение1) и сообщение 1 идет только в JTextArea связан Консоль1 Console2.out.println (message2) и сообщение 2 идет только в JTextArea связанного Консоль2

Почему бы вам не сделать свой собственный класс, который расширяет JTextArea и написать способ делать то, что вы хотите? Что-то вроде:

public class MyTextArea extends JTextArea { 
    public void println() { 
     //add text to the textarea 
    } 
} 

Если вам не нужен ваш метод, чтобы иметь имя println вы можете просто использовать append метод, который уже существует в JTextArea:

textArea.append(myString+"\n"); 
0

Я использую это с открытым исходным кодом сообщение Консоль в java. Он прост в использовании.

message console Java