Java Daten von Konsole einlesen (Spezielles Problem)

  • Themenstarter Themenstarter JavaBeginner25
  • Beginndatum Beginndatum
J

JavaBeginner25

Gast
Hallo zusammen,
ich habe ein Problem. Ich möchte von der Konsole Daten einlesen.
Die Konsole soll so aussehen.

-----------------------------------
Geben Sie bitte die Daten ein:
Name:
Vorname:
-----------------------------------

Hier sollen dann so die Daten folgendermaßeneingegeben werden:

-----------------------------------
Geben Sie bitte die Daten ein:
Name: Max
Vorname: Mustermann
-----------------------------------



Ich kriege das aber nicht richtig hin. Mein Code sieht folgendermaßen aus.
Java:
        System.out.println("Geben Sie bitte die Daten ein\n");
        System.out.print("     Name: ");
        Person.name = br.readLine();
        System.out.print("  Vorname: ");
        Person.name = br.readLine();

Die Ausgabe von diesem Code sieht dann aber so aus(Die Zeile Vorname: wird erst angezeigt nachdem der Name eingegeben wurde und auf Enter gedrückt wurde). Ansonsten funktioniert das Einlesen der Variablen.


-----------------------------------
Geben Sie bitte die Daten ein:
Name: Max

-----------------------------------



-----------------------------------
Geben Sie bitte die Daten ein:
Name: Max
Vorname: Mustermann
-----------------------------------



Ich hoffe ihr versteht was ich meine. Kann leider nicht so gut erklären.
 
Mhh geht das wirklich nicht? Das muss leider so sein! Kennt sich einer mit der Java Curses Library aus? Wie löse ich das denn mit der?
 
Bin mir nicht sicher, was du genau meinst.
Aber vielleicht hilft dir das ja weiter:

Java:
import java.util.Scanner;
public class daten_einlesen {
  
  public static void main(String[] args) {
    Scanner eingabe = new Scanner(System.in);
    
    System.out.println("Geben Sie bitte die Daten ein:");
    System.out.print("Name: ");
    String name =  eingabe.next();
    System.out.print("Vorname: ");
    String vorname =  eingabe.next();
    
  } // end of main
  
} // end of class daten_einlesen
 
@ siver Dies hatte ich auch schon gemacht. Das entspricht aber nicht den Anforderungen an das Programm. Wie man Variablen einliest habe ich schon verstanden und es funktioniert auch. Nur die Eingabemaske muss bei mir anders aussehen. Ich habe jetzt irgendwie eine Notlösung programmiert.
Trotzdem danke für eure Hilfe 😉
 
Geht über ESC-Sequenzen der Bildschirmsteuerung. Hier ein Muster zum Experimentieren - funktioniert allerdings nicht innerhalb von Eclipse etc. weil die meissten IDEs diese Escape-Sequenzen auf ihrer Konsole nicht interpretieren (obwohl es gültige Unicode-Zeichen sind).

Java:
import java.io.*;

public class AnsiScreen {
	public static final String CLS = "\u001b[2J";
	public static final String TOP = "\u001b[0;1H";
	public static final String BOLD = "\u001b[1m";
	public static final String RESET = "\u001b[0m";

	public static void main(String[] args) throws Throwable {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		System.out.print(CLS + TOP);
		System.out.println("Nachname:");
		System.out.println("Vorname :");
		locate(11, 1);
		in.readLine();
		locate(11, 2);
		in.readLine();
	}

	private static void locate(int x, int y) {
		System.out.print("\u001b[" + y + ";" + x + "H");
	}
}
 

Neue Themen


Zurück
Oben