Erstellen Sie eine "Befehl" Konsole
Ich habe eine etwas ungewöhnliche Frage: Wie kann ich eine "Command Console" mit Swing?
Was ich haben will ist eine Konsole, wo die Benutzer geben Sie die Befehle ein, drücken Sie enter, und die Ausgabe des Befehls wird angezeigt. Ich will nicht, um dem Benutzer zu ermöglichen, ändern Sie die "Eingabeaufforderung" und ältere Ausgabe. Ich denke da an so etwas wie Windows CMD.EXE.
Hatte ich einen Blick auf diese Frage, aber es beantwortet nicht meine Frage.
- Meinst du so etwas wie die BeanShell Arbeitsbereich?
- Warum würdest du mit Swing? Was ist falsch mit nur die Schaffung eines Java Konsole-app direkt?
- Das ist eine bessere Antwort als die, die ich dachte. 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
BeanShell bietet eine JConsole, ein command-line-Eingabe-Konsole mit den folgenden Eigenschaften:
Den BeanShell-Gläser sind verfügbar von http://www.beanshell.org/download.html und die source ist erhältlich per SVN aus
svn co http://ikayzo.org/svn/beanshell
Weitere Infos über JConsole finden Sie http://www.beanshell.org/manual/jconsole.html
Hier ist ein Beispiel mit BeanShell ist JConsole in Ihrer Anwendung:
NB: JConsole kehrt zurück ";" wenn Sie die EINGABETASTE drücken, indem Sie sich.
bsh-2.0b4.jar
. Typeingquit
und drücken Sie enter tut nichts, aber bringen Sie den cursor auf die neue Zeile. Die Hintergrundfarbe ist weiß. Der Brief Farben sind schwarz. Ich sehe nieYou typed:
.Werfen Sie einen Blick auf die Groovy-Konsole. Dies ist, wie es aussieht:
Groovy-Konsole http://groovy.codehaus.org/download/attachments/36800/GroovyConsole.gif
Obwohl es eine Konsole für Groovy eher als willkürliche Befehle, Sie sollten in der Lage sein, um anzupassen Ideen und/oder code aus, um zu bekommen, was Sie brauchen.
Wenn ich verstehe deine Frage richtig, Sie schauen, um Befehle auszuführen, die spezifisch für Ihre Anwendung. Mein Rat wäre, wenn dies tatsächlich der Fall ist, ist die Verwendung von zwei Texteingabefelder, eine einzige Zeile, und eine, die den rest des Raumes. Fügen Sie einige keypress-event-Handler, um die kleine, die würde bearbeitet werden, und machen die anderen nur Lesen. Wenn Sie einen einzelnen text-Bereich, man konnte es nur Lesen, und fügen Sie dann ein paar keypress-Handler zu behandeln Zeicheneingabe und up/down-Taste gedrückt.
Hoffe ich hab deine Frage verstanden, richtig, viel Glück.
Versuchen, diesen code:
Er verwendet ein JPanel als das panel und ein JLabel als die Konsole. Die Befehle sind an einen CommandListener-Objekt und der zurückgegebene Wert wird auf der Konsole ausgegeben.
Können Sie beliebige Befehle ausführen mit Plexus mit Commandline. Es behandelt die Flucht der Argumente, Umwelt bestimmte Ausführung, und ermöglicht es Ihnen, zu befestigen Verbraucher auf stdout und stderr, verlassen Sie sich auf die Handhabung.
Hier ist ein link zu ein weiterer answer I gab, die zeigen, wie können Sie eine Kommandozeile und Griff die Ausgabe.
Ich würde nicht versuchen, die Verknüpfungen (wie groovy/beanshell), es sei denn, Sie passen Ihre Bedürfnisse genau. Wenn Sie versuchen, eine high-level-tool zu tun, was Sie wollen, wenn es ist nicht das, was es bereits tut, kann die frustrierende Sache über die Programmierung.
Sollte es ziemlich einfach sein, nehmen Sie ein Textfeld und "Machen Sie es Ihre eigenen", aber es wäre viel einfacher zu tun, als jemand anderes vorgeschlagen, und verwenden Sie eine Online-text-Steuerelement in Kombination mit einem multi-line-display-Bereich.
In jedem Fall, dass Sie wollen, halten ziemlich enge Kontrolle auf das gesamte system, zu filtern und abzufangen einige Tastenanschläge, disable-Eingang, um die "Display" - Bereich, wenn Sie sich entscheiden, zu gehen mit, dass, zwingen einen Klick auf Ihre Anzeige-Bereich zu senden, die den Fokus auf Ihre input-Feld, ...
Wenn Sie die single-box-Sache, werden Sie wollen, stellen Sie sicher, dass Ihr input ist immer an der Unterseite der box und Sie Steuern den cursor-Positionierung (Sie wahrscheinlich nicht wollen, dass Sie in der Lage zu tun, jede Eingabe für jede Zeile außer der letzten Zeile).
Ich schlage vor, Sie nehmen nicht an einer einzigen Kontrolle ist nur zur Arbeit zu gehen ohne änderung erwarten, zu tun, die Beinarbeit und alles wird gut.
Wenn Sie möchten,
verwenden cmd.exe. Alles, was Sie drucken, mit
System.out.println("")
wird dort erscheinen. Was Sie tun müssen, ist erstellen Sie ein .bat-Datei, wo deine kompilierte Datei ist.