Die Swing-JConsole
Die JConsole ist ein SwingElement, welches eine Eingabeoberfläche ähnlich eines DOS-Fensters oder einer Shell nachbildet.
Hier sind ein paar Features:
- markierter Text wird sofort in die Zwischenablage kopiert
- Rechte Maustaste = Von der Zwischenablage einfügen
- Befehlshistory
- klassisches Schwarz-Grün-Design
Lizenz: LPGL
Autor: Clemens Gogolin (Braunschweig 2008/01)
Bitte: Wenn diese Konsole noch woanders Anwendung findet, tät mich das interessieren... nur so aus Neugier.
Update 5. März 2009
Heute hab ich den Autovervollständiger umgebaut, damit er leichter zuverwenden ist. Ausßerdem hab ich festgestellt, dass das Subversions-Verzeichnis tot ist. ich hab es wieder aufgebaut.
Fürs Auschecken: https://svn.cylancer.net/jconsole/
und fürs Prüfen noch websvn.
Update: 01.11.2008
- Ich hab die in der Klasse CommandSupport "sun.awt.EventListenerAggregate" gegen eine einfache Liste ersetzt. Schlichte Datentypen machen die Sache einfacher und nachvollziehbarer für weitere Nutzer.
- Etwas organisatorisches: Ich hab einen Subversion-Server aufgesetzt. Über diesen kann der Quelltext und die aktuelle JAR auch bezogen werden.
Dazu gibt es zwei URLs:
1. https://svn.cylancer.net/jConsole/ für den SVN-Zugriff
2. und eine URL mit websvn, wo die Änderung schön im Browser angezeigt werden.
Update: 15.02.2008
- Mir ist in der vorherigen Version ein ganz doofer Fehler unterlaufen: Mit
this.getKeymap().addActionForKeyStroke(...
klaut JConsole allen Eingaben die wichtigen Steuertasten. Dieser Fehler ist jetzt behoben.
- Dann habe ich eine Methode eingebaut, die einem hilft eine Eingabevervollstätigung zu realisieren. @see autoCompleter(...)
- Mit der Methode
public void clear() ;
die Console geleert.
- und mit
public String getCurrentInput()
kann man jederzeit abfragen, was die aktuelle Eingabe ist.
Update: 15.01.2008:
- Das Parsen der Eingabe (Trennung zwischen Befehl und Parameter wird nun im Event erledigt.)
- Beim Parsen der Eingabe werden Doppelhochkomma (") für zusammenhängende Ausdrücke gnutzt.
zB: Eingabe:
# test parameter1 "parameter 2"
ergibt Befehl ="test" und Parameter = {"parameter1", "parameter 2"};
(früher wäre Befehl ="test" und Parameter = {"parameter1", "parameter", "2"}; dabei rausgekommen.)
- viele Tastaturkombinationen zum Textmarkieren deaktiviert. (Markieren, Kopieren und Einfügen soll nur mit der Maus gemacht werden können)