Eclipse Mehrere Threads, mehrere Konsolen

MarioW1986

Bekanntes Mitglied
Hallo Community,
ich habe schon versucht, etwas passendes zu finden, leider ohne Erfolg.
Vielleicht suche ich auch einfach nach dem falschen Stichwort.

Ich habe ein Programm, welches Daten über eine Serielle Kommunikation bekommt.
Es laufen 2 Threads parallel. Jedoch werden die Daten der jeweiligen Threads in eine Gemeinsame Konsole geschrieben. Anfangs war das noch kein Problem, doch jetzt kommen so viele Daten an, sodass die ganze Geschichte doch sehr unübersichtlich wird.
Daher meine Frage, kann ich die Ausgabekonsolen (von denen ich ja durchaus mehrere aufrufen kann) auch den jeweiligen Threads zuordnen? Ich sehe keinen Sinn dahinter die gleiche Konsole mit dem gleichen Inhalt mehrfach zu haben. Daher denke ich dass daswas ich suche schon irgendwie möglich ist.

Ich hoffe ich konnte mein Problem rüberbringen 🙂

Geht sowas und wenn ja wie?
Lässt sich so etwas über den Code lösen oder ist es nur eine Eisntellungssache

Ich benutze Eclipse Luna

Danke schonmal

Mit freundlichen Grüßen
 
Du benutzt in deinem Programm immer für die Ausgabe System.out.
Das ist eben nunmal die eine Konsole, von der das Programm aufgerufen wurde.

Eine 2. Konsole bekommst du nur, wenn du den 2. Thread in einem anderen Programm aufrufst.

Als Möglichkeit könntest du dir eine Methode definieren, die die Ausgaben formatiert:

Java:
	public static void main(String[] args) {
		new Thread("Thread1"){
			public void run() {
				for(int i = 10;i>0;i--){
					print(i);
					try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			};
		}.start();
		
		new Thread("Thread2"){
			public void run() {
				for(int i = 10;i>0;i--){
					print(i);
					try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			};
		}.start();
	}
	
	public static void print(Object object){
		System.out.println(String.format("%-8s|%s",Thread.currentThread().getName(),object.toString()));
	}

und dann immer diese print Methode statt dem System.out verwenden.
 
Vielen Dank schon einmal für die Antworten.

Ich habe jetzt ein JFrame gebaut und hab meine beiden ScrollPanes mit jeweils einer JTextArea reingelegt. Der Text wird auch ausgegeben. Funktioniert also super. Genau das wollte ich 🙂

Eine Frage hab ich aber dann noch und zwar möchte ich dass die ScrollPane immer am Ende steht und nicht ganz oben. Heißt neue Daten, dann automatisch ans Ende scrollen. Geht das?

Danke
 
Zuletzt bearbeitet:
Das geht über die ScrollBars. Die kannst du dir geben lassen und sie ganz nach unten Scrollen lassen. Vielleicht gibt es noch eine Möglichkeit aber mir fällt keine ein. 🙂
 

Zurück
Oben