User - Interface über die Console

Status
Nicht offen für weitere Antworten.

Das Vi

Mitglied
Moin
Ich habe mal ne Frage: Ich soll ein Programm schreiben, welches 3-,4-,oder x-stellige nummern verwaltet (dh. für kunden reserviert, wieder freigibt usw.) mein bisheriger quelltext sieht so aus:
Java:
import javax.swing.JOptionPane;


public class ReservationSystem {
    static int stellen = 2;
    String[] nummern = new String[(new Double(Math.pow(10, stellen))).intValue()];
    boolean[] reserviert = new boolean[nummern.length];
    String[] kunden = new String[nummern.length];
    String kunde;
    int anzahl;
    int frei = 0;
    int start = 0;
    
    public ReservationSystem(String kunde, int anzahl)
    {
        this.kunde = kunde;
        this.anzahl = anzahl;
    }
    
    
    void dump() 
    {
        reserve();
        for (int i = 0; i < nummern.length; i++)
            if (reserviert[i] == true)
                System.out.println(nummern[i] + " reserviert von "
                        + kunden[i]);
            else
                System.out.println(nummern[i] + " " + reserviert[i]);
    }
    
    
    void run() {
        for (int i = 0; i < nummern.length; i++)
        {
            nummern[i] = String.format("%0" + stellen + "d", i);            
        }
    }
    
    void reserve() {
        if ( anzahl > (nummern.length/10))
        {
            JOptionPane.showMessageDialog(null, "So viele Nummern stehen nicht zur Verfügung.");
        }
        else
        {
        while ( frei < anzahl )
        { 
        if ( anzahl < 10 )
        {
            for ( int i = 0; i < nummern.length; i++)
            {
                if ( reserviert[i] == true )
                {
                    frei = 0;
                    start = i + 1;
                }
                else
                {
                    frei++;
                }
                
            }
        }
        else
            if ( anzahl >= 10 )
            {
                for ( int i = 0; i < nummern.length; i += 10 )
                {
                    if ( reserviert[i] == true )
                    {
                        frei = 0;
                        i++;
                        start = i + 11;
                    }
                    else
                    {
                        frei++;
                    }
                }
            }
        }

        {
            if ( anzahl < 10 )
            {
                for ( int i = start; i < anzahl; i++)
                {
                    reserviert[i] = true;
                    kunden[i] = kunde;
                }
            }
            else
            {
                for ( int i = start; i < anzahl*10; i += 10 )
                {
                    reserviert[i] = true;
                    kunden[i] = kunde;
                }
            }
                
        }
    }
    }
    
    public static void main(String[] args) {
        do
        {
        String kunde = JOptionPane.showInputDialog("Bitte Namen eingeben");
        int anzahl = Integer.parseInt(JOptionPane.showInputDialog("Wieviele Nummern möchten Sie reservieren?"));
        ReservationSystem r = new ReservationSystem(kunde, anzahl);
        r.dump();
        }
        while (JOptionPane.showConfirmDialog(null, 
                                            "Wollen Sie noch weitere Reservierungen tätigen?",
                                            "Weitere Reservierungen?",
                                             JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION);
    }

}

gibt es eine möglichkeit, dass ich bei programmstart die console (oder sonstwas eingabeaufforderungsmäßiges) aufrufe und man dann in der console einfach nur "run", "reserve" oder "dump" eingeben muss und dann die dazugehörigen Methoden starten? danke!
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
wie und von wo startest du das Programm, was bedeutet es 'die [eine?] console aufzurufen'?

direkt beim Programmstart kann man einem Java-Programm Parameter übergeben,
die landen dann im ominösen 'String[] args' der main-Methode

später kann man aus System.in Eingaben von der Konsole einlesen, korrekt,
wenn du aber schon JOptionPane zur User-Interaktion benutzt, dann doch lieber darüber alles steuern?
 

Das Vi

Mitglied
Das Programm läuft einfach als Java Application und startet bei der main-methode (ist doch auch normal oder nicht?) Und das mit den JOptionPane Dingern ist nur ne Übergangslösung, weil das eigentlich eher suboptimal für meine Zwecke ist...
Also was ich mir vorstelle wäre:

Programm startet und ruft die Eingabeaufforderung auf und startet automatisch erstmal die run methode, damit die nummern überhaupt im array sind.

ich gebe in der eingabeaufforderung reserve ein und es kommen zwei fenster, eins wo ich den namen eingebe und eins, wo ich die gewünschte anzahl der nummern eingebe, die ich reservieren will.

oder ich gebe dump ein und er spuckt mir in die console aus, welche nummern reserviert sind usw.

ist das denn überhaupt realisierbar?
 

Das Vi

Mitglied
Ok allein schon das Wort parser schreckt mich ab ^^ Ich beschäftige mich seit ungefähr 4 Tagen mit Java...Dann mach ich es halt doch vollständig über JOptionPane...

Mal noch ne Frage:
Kann ich das irgendwie so einrichten, dass er bevor die Main-Methode die do-while-Schleife abarbeitet die run-methode _1_ mal ausführt? oder es irgendwie anders einrichten, dass die Arrays bei Programmstart erstmal befüllt werden und man dann reserven kann? weil sonst befüllt er die vor jedem mal reservieren neu und das ist ja scheiße dann^^
 

The_S

Top Contributor
Ok allein schon das Wort parser schreckt mich ab ^^ Ich beschäftige mich seit ungefähr 4 Tagen mit Java...Dann mach ich es halt doch vollständig über JOptionPane...

Naja, von der Commandozeile einen Wert einlesen und dann vergleichen

Java:
if ("dump".equals(eingelesenerString)) {
  dump();
}
else if ("reserve".equals(eingelesenerString)) {
  reserve();
}
// ...

Ein Parser muss also nichts komplexes sein ;) .

Mal noch ne Frage:
Kann ich das irgendwie so einrichten, dass er bevor die Main-Methode die do-while-Schleife abarbeitet die run-methode _1_ mal ausführt? oder es irgendwie anders einrichten, dass die Arrays bei Programmstart erstmal befüllt werden und man dann reserven kann? weil sonst befüllt er die vor jedem mal reservieren neu und das ist ja scheiße dann^^

Einfach die Methode aufrufen!?
 

Das Vi

Mitglied
Guck dir mal den Code in der Main-methode an...das hab ich schon ausprobiert, aber damit ich die run-methode aufrufen kann, muss die in der do while schleife drin sein, sonst meckert er rum...und die ReservationSystem r muss ich anlegen nachdem die Variablen kunde und anzahl deklariert wurden und das wiederum geschieht innerhalb der do-while-schleife ...

EDIT sagt:
ich hätte mir den parser schwerer vorgestellt^^ wenn man jetzt noch bei programmstart ne console starten könnte, damit man auch strings eingeben kann, die dann eingelesen werden, wäre das extrem genial
 

The_S

Top Contributor
EDIT sagt:
ich hätte mir den parser schwerer vorgestellt^^ wenn man jetzt noch bei programmstart ne console starten könnte, damit man auch strings eingeben kann, die dann eingelesen werden, wäre das extrem genial

Die Konsole ist doch schon da!? Wozu noch eine?

Guck dir mal den Code in der Main-methode an...das hab ich schon ausprobiert, aber damit ich die run-methode aufrufen kann, muss die in der do while schleife drin sein, sonst meckert er rum...und die ReservationSystem r muss ich anlegen nachdem die Variablen kunde und anzahl deklariert wurden und das wiederum geschieht innerhalb der do-while-schleife ...

Dann lager die Abfrage halt vor der do-while-schleife aus!?
 

Das Vi

Mitglied
Die Konsole ist doch schon da!? Wozu noch eine?
Nja aber wenn das Programm gestartet ist, kann man da doch nichts eingeben, sondern nur ausprinten lassen oder seh ich das falsch?

Dann lager die Abfrage halt vor der do-while-schleife aus!?
wie genau meinst du das?
etwa so?:

Java:
    public static void main(String[] args) {    
        run(); // !
        do
        {
        String kunde = JOptionPane.showInputDialog("Bitte Namen eingeben");
        int anzahl = Integer.parseInt(JOptionPane.showInputDialog("Wieviele Nummern möchten Sie reservieren?"));
        ReservationSystem r = new ReservationSystem(kunde, anzahl);
        r.dump();
        }
        while (JOptionPane.showConfirmDialog(null, 
                                            "Wollen Sie noch weitere Reservierungen tätigen?",
                                            "Weitere Reservierungen?",
                                             JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION);
    }
 
Zuletzt bearbeitet von einem Moderator:

The_S

Top Contributor
Nja aber wenn das Programm gestartet ist, kann man da doch nichts eingeben, sondern nur ausprinten lassen oder seh ich das falsch?

ja. Bsp.:

Java:
BufferedReader buffy = new BufferedReader(new InputStreamReader(System.in));
String eingeleseneZeile = buffy.readLine();

wie genau meinst du das?
etwa so?:

Code:
    public static void main(String[] args) {    
        [B]run();[/B]
        do
        {
        String kunde = JOptionPane.showInputDialog("Bitte Namen eingeben");
        int anzahl = Integer.parseInt(JOptionPane.showInputDialog("Wieviele Nummern möchten Sie reservieren?"));
        ReservationSystem r = new ReservationSystem(kunde, anzahl);
        r.dump();
        }
        while (JOptionPane.showConfirmDialog(null, 
                                            "Wollen Sie noch weitere Reservierungen tätigen?",
                                            "Weitere Reservierungen?",
                                             JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION);
    }

nein

Aber jetzt wo ich mir das Programm so ansehe, warum willst du "run" überhaupt außerhalb der Schleife aufrufen? Und warum erstellst du jedesmal ein neues ReservationSystem? Sicher, dass da nicht ein kleiner Denkfehler vorliegt?
 

Das Vi

Mitglied
Ja mir ist grad aufgefallen, dass ich für run eigl keine eigene methode brauche ^^ habs jetzt direkt in die main-methode geschrieben...

Und warum erstellst du jedesmal ein neues ReservationSystem?

da gibt es zwei gründe für :
1. damit ich die methode dump überhaupt aufrufen kann und das programm etwas macht

2. weil mir das ein mitarbeiter so gesagt hat ^^
 

The_S

Top Contributor
Naja gut, lassen wir das mal so im Raum stehen. Jeder hat mal angefangen. Und da zählt Funktionalität nunmal mehr als Schönheit ;) .
 

Das Vi

Mitglied
Dankeschön ^^

ähm das mit dem buffered reader funktioniert nicht so ganz...

ich hab jetzt
import java.io.InputStreamReader;
import java.io.BufferedReader;
gemacht und er sagt mir bei
Code:
    String eingeleseneZeile = buffy.readLine();
buffy.readLine(); <--"unhandled exception type IOexception
 

Das Vi

Mitglied
EDIT SAGT: Ich mach einen neuen Fred zu dem auf, das Problem hat nämlich nichts mehr mit dem ursprünglichen Thema zu tun.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T User input in Verbindung mit ChronoUnit anpassen und falls falsche Eingabe getätigtwird Java Basics - Anfänger-Themen 7
javapingu Endlosschleife bei User Input mit try Scanner Java Basics - Anfänger-Themen 7
W User zwischen Optionen wählen lassen Java Basics - Anfänger-Themen 1
JD_1998 Vektorrechner; User Input -> Index out of bounds Java Basics - Anfänger-Themen 3
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
R Wie überprüfen wann der User online oder offline ist? Java Basics - Anfänger-Themen 5
B Import Tabelle - Struktur durch User einstellbar Java Basics - Anfänger-Themen 4
C Wie kann ich einen User Input mit einer If-Anweisung verbinden? Java Basics - Anfänger-Themen 5
I gemeinsame Config-Datei für alle Windows-User Java Basics - Anfänger-Themen 5
J Dateien für anderen User "mitgeben" Java Basics - Anfänger-Themen 1
M "Per-User"-Variable Java Basics - Anfänger-Themen 2
P Ein Array mit der Eingaber der User füllen und ausgeben Java Basics - Anfänger-Themen 6
Z User/passwort eingabe...Help! Java Basics - Anfänger-Themen 4
J Array manuell vom User eingeben, Zeilenweise Java Basics - Anfänger-Themen 2
R User Input wird übersprungen?! Java Basics - Anfänger-Themen 17
N User Eingabe mit Zeile aus TextFile vergleichen Java Basics - Anfänger-Themen 13
H Erste Schritte 2 User Interfaces für eine Anwendung Java Basics - Anfänger-Themen 7
S Input/Output Welche Möglichkeiten Eingabe von User abfragen Java Basics - Anfänger-Themen 5
N User wechseln? Java Basics - Anfänger-Themen 3
3 User erstellen / Oracle Content DB Java Basics - Anfänger-Themen 2
G Startmenü und user.dir Java Basics - Anfänger-Themen 14
P System.getProperty("user.dir") beeinflussen Java Basics - Anfänger-Themen 3
kulturfenster User soll Radius von Kugel bestimmen Java Basics - Anfänger-Themen 4
K User Aktivität überwachen Java Basics - Anfänger-Themen 9
I User anlegen und Sytempfade zuordnen Java Basics - Anfänger-Themen 4
I Wie kann man in root -User wechseln? Java Basics - Anfänger-Themen 16
S Windows User != Server User auslesen Java Basics - Anfänger-Themen 19
H Dienst beenden als normaler User Java Basics - Anfänger-Themen 3
X Property user.name über Konsole verändern Java Basics - Anfänger-Themen 6
M JTable Zellen für User sperren Java Basics - Anfänger-Themen 4
I No Jakarta Enterprise Beans found with interface ignorieren? Java Basics - Anfänger-Themen 2
I No EJB found with interface of type Java Basics - Anfänger-Themen 12
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
Say Abstrakt oder Interface Java Basics - Anfänger-Themen 3
Say public/default Interface Java Basics - Anfänger-Themen 9
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
W Intuitive interface für Komponenten Java Basics - Anfänger-Themen 4
I Browser integriert in Desktop Applikation - Webcam interface not found Java Basics - Anfänger-Themen 26
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
J Interface Comparable<T> Java Basics - Anfänger-Themen 10
M Interface oder Vererbung? Java Basics - Anfänger-Themen 12
D Interface Verständisfrage Java Basics - Anfänger-Themen 8
U Interface | constructor injection Java Basics - Anfänger-Themen 5
J Interface Interface korrekt implementieren Java Basics - Anfänger-Themen 5
A Methoden Vererbung und Interface Java Basics - Anfänger-Themen 14
T Interface Map und Map.Entry Java Basics - Anfänger-Themen 4
U Interface als PAramter (Vergleich) und ein Error Java Basics - Anfänger-Themen 9
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
I JSON und Interface Java Basics - Anfänger-Themen 3
Kotelettklopfer Kleines Testprogramm mit Interface und einer Usereingabe Java Basics - Anfänger-Themen 16
J Interface methode aufrufen (interface parameter) Java Basics - Anfänger-Themen 7
CptK Interface Functional interface mit mehreren Methoden Java Basics - Anfänger-Themen 6
L Interface & Comparable Java Basics - Anfänger-Themen 15
T Interface Java Basics - Anfänger-Themen 0
CptK Generics: Klassen die Interface implementieren, aber selbst nicht das Interface sind Java Basics - Anfänger-Themen 8
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
B Best Practice Unschlüssig ob Vererbung oder Interface Java Basics - Anfänger-Themen 2
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
C Interface und Konstruktor Java Basics - Anfänger-Themen 1
S Interface Equals und hashCode Java Basics - Anfänger-Themen 16
A Generische Klassen/Interface Java Basics - Anfänger-Themen 1
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
A Interface Kuddelmuddel Java Basics - Anfänger-Themen 4
C Collections List über Interface zugreifen Java Basics - Anfänger-Themen 32
S Interface Interface und seine Implementierung Java Basics - Anfänger-Themen 5
H abstract und interface Java Basics - Anfänger-Themen 4
F Interface Casting Java Basics - Anfänger-Themen 13
C Telefonliste mit interface implementieren Java Basics - Anfänger-Themen 30
L Klassen Kann eine Unterklasse einer abstrakten Klasse ein Interface implementieren? Java Basics - Anfänger-Themen 2
H Interface Java Basics - Anfänger-Themen 2
R Quicksort mit Interface Comparable Java Basics - Anfänger-Themen 6
T Interface Methode im Interface mit mehreren Parametern Java Basics - Anfänger-Themen 10
B Interface vs Abstract Java Basics - Anfänger-Themen 2
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
pkm Interface Funktionales Interface lässt sich nicht implementieren. Java Basics - Anfänger-Themen 2
Kornblume Comparable Interface für Objektvergleiche nutzen Java Basics - Anfänger-Themen 15
I Comparator<T> Interface als Methodenparamter Java Basics - Anfänger-Themen 4
J OOP Wie sollte ich das organisieren (Abstract? Interface?) Java Basics - Anfänger-Themen 33
J Java Interface/abstrakte Klassen Java Basics - Anfänger-Themen 2
E Interface nur von abstrakter Klasse implementierbar?! Java Basics - Anfänger-Themen 1
J Vererbung Abstrake Klasse <-> Interface Java Basics - Anfänger-Themen 5
C Interface als Datentyp eines Attributes? Java Basics - Anfänger-Themen 6
U Interface Bedeutung "Code to an interface rather than to an implementation." Java Basics - Anfänger-Themen 4
M Erste Schritte Prüfungsbeispiel: Interface / abstrakte Klassen Java Basics - Anfänger-Themen 8
M Maven Main-Methode Interface und Klasse Java Basics - Anfänger-Themen 2
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
D Interface Amazon Skill Kit, Interface but method in other class? Java Basics - Anfänger-Themen 3
A Interface Abstrakte Interface Methode kann nicht benutzt werden Java Basics - Anfänger-Themen 10
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
T Vererbung und interface. Java Basics - Anfänger-Themen 1
N Interface Interface Erstellung Java Basics - Anfänger-Themen 3
kilopack15 Beziehung Interface - (abstrakte) Klasse -Unterklasse Java Basics - Anfänger-Themen 3
C Interface Fragen zum Interface Java Basics - Anfänger-Themen 7
Azazel Ist die abstract class das selbe wie ein interface ? Java Basics - Anfänger-Themen 33
K Interface: wie damit arbeiten Java Basics - Anfänger-Themen 4
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben