Есть ли способ создать свой собственный System.out? Я хочу иметь класс «MyConsole» с атрибутом out (PrintWriter) и отправлять из всех сообщений txt-сообщений, которые будут напечатаны в JTextArea (например, System.out, распечатать все сообщения в консоли), не создавать экземпляр этого файла во всех классов или передать его в атрибутахJava Make Own System.out
ответ
Создайте статический конечный класс и статические методы и используйте его в приложении. Статический метод можно напрямую вызвать без создания экземпляра класса.
могу ли я ссылаться jtextarea из моего JFrame в статическом финальном классе? –
мне нужно что-то вроде: экс 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");
Я использую это с открытым исходным кодом сообщение Консоль в java. Он прост в использовании.
не как статичная ссылка, не делая некоторые действительно плохой дизайн. –
Если вам действительно нужно, создайте свой собственный «PrintWriter», а затем используйте «System.setOut (myPrintWriter)», чтобы каждый вывод на консоль был перенаправлен на ваш принтер. – BackSlash
Я хочу иметь несколько «System.out», чтобы связать больше консолей. –