M
mr1st
Gast
Hallo,
ich arbeite gerade an einem Zeichenprogram a la Autocad. Dazu möchte ich auch eine Kommandozeile implementieren, damit man die Objekte mittels Tastatureingabe sehr schnell zeichnen kann.
Ich hab's auch einigermaßen geschafft, nur sind leider einige Schönheitsfehler enthalten.
Mein Ansatz sind 2 JTextAreas, wobei die obere in einem JScrollpane liegt und nicht editierbar ist. Die zweite ist nur eine Zeile hoch und editierbar. Ich habe einen eigenen KeyListener geschrieben, dass wenn man die Enter Taste drückt der Text von der unteren Area zur oberen hinzugefügt wird (und später irgendwann der befehl ausgeführt wird). Weiters fange ich die Tabulatortaste. Diese dient dazu, um Befehle zu vervollständigen. Man tippt also nur einen Teil des Befehls ein, und sofern dieser eindeutig ist, wird der restliche Befehl automatisch hingeschrieben. Dies dient zur Beschleunigung der Eingabe.
Schönheitfehler:
1. Der Schiebebalken des Scrollpanes erstreckt sich nur über die obere JTextArea.
2. Ich musste eine eigene Methode schreiben, die mir nach Tabulatoren und Zeilenumbrüchen sucht und diese löscht. Wirklich schön ist sie nicht, da sie mit einiges if's und substrings funktioniert.
3. Die Tabs und Umbrüche werden trotz eigenem KeyListener trotzdem in den Text hinzugefügt.
4. Ich kann erst auf KeyReleased reagieren, damit das alles funktioniert
5. Wenn ich Enter drücke, ist die untere Eingabezeile so lange 2 Zeilen hoch, bis ich wieder die Enter-Taste loslasse. Dadurch entseht ein hüpfen des oberen Texts.
6. Ich muss genau in die untere Area hineinklicken, damit ich dort auch schreiben kann
Meine Fragen:
a. Irgendwelche Hinweise, das alles auszubessern?
b. Andere bessere Möglichkeit(en)?
Danke im voraus,
MfG
ich arbeite gerade an einem Zeichenprogram a la Autocad. Dazu möchte ich auch eine Kommandozeile implementieren, damit man die Objekte mittels Tastatureingabe sehr schnell zeichnen kann.
Ich hab's auch einigermaßen geschafft, nur sind leider einige Schönheitsfehler enthalten.
Mein Ansatz sind 2 JTextAreas, wobei die obere in einem JScrollpane liegt und nicht editierbar ist. Die zweite ist nur eine Zeile hoch und editierbar. Ich habe einen eigenen KeyListener geschrieben, dass wenn man die Enter Taste drückt der Text von der unteren Area zur oberen hinzugefügt wird (und später irgendwann der befehl ausgeführt wird). Weiters fange ich die Tabulatortaste. Diese dient dazu, um Befehle zu vervollständigen. Man tippt also nur einen Teil des Befehls ein, und sofern dieser eindeutig ist, wird der restliche Befehl automatisch hingeschrieben. Dies dient zur Beschleunigung der Eingabe.
Schönheitfehler:
1. Der Schiebebalken des Scrollpanes erstreckt sich nur über die obere JTextArea.
2. Ich musste eine eigene Methode schreiben, die mir nach Tabulatoren und Zeilenumbrüchen sucht und diese löscht. Wirklich schön ist sie nicht, da sie mit einiges if's und substrings funktioniert.
3. Die Tabs und Umbrüche werden trotz eigenem KeyListener trotzdem in den Text hinzugefügt.
4. Ich kann erst auf KeyReleased reagieren, damit das alles funktioniert
5. Wenn ich Enter drücke, ist die untere Eingabezeile so lange 2 Zeilen hoch, bis ich wieder die Enter-Taste loslasse. Dadurch entseht ein hüpfen des oberen Texts.
6. Ich muss genau in die untere Area hineinklicken, damit ich dort auch schreiben kann
Meine Fragen:
a. Irgendwelche Hinweise, das alles auszubessern?
b. Andere bessere Möglichkeit(en)?
Danke im voraus,
MfG