Swing User tippt in unsichtbares JTextField

RungetSvohu

Bekanntes Mitglied
Hallo,

ich weiß nicht, wie sich folgendes implementieren lässt: Meine Anwendung soll Keyboard-Inputs abfangen und intern so tun, als landeten sie alle in einem JTextField. In Wirklichkeit existiert aber kein JTextField (oder zumindest wird keins angezeigt), der User tippt also einfach ins Leere (bzw ein JPanel ist im Fokus, der zum Input etwas anzeigen soll). Dennoch möchte ich jederzeit den String auslesen können, der gerade in dem JTextField stünde, wenn es denn eins gäbe. Auf Backspace und Cursortasten soll also entsprechend reagiert werden. Man kann es natürlich zu Fuß programmieren, indem man für jeden möglichen Tastendruck hart einprogrammiert, was zu tun ist, aber das ist natürlich ziemlich umständlich. Gibt es da einen einfacheren Weg?

Vielen Dank!
 

turtle

Top Contributor
Wow!

Wofür braucht man so einen QUATSCH?

Kein Benutzer, den ich kenne, fängt so aus Spaß an in einem Programm mal einfach drauf los zu tippen!
 

Ruzmanz

Top Contributor
An die Tasten kommst du über
Code:
KeyboardFocusManager
und für die Maus benötigst du einen MouseListener.

Java:
public class AFrame {
   private String input = "";

   public AFrame() {
      KeyboardFocusManager.getCurrentKeyboardFocusManager()
         .addKeyEventDispatcher(new KeyEventDispatcher() {
              @Override
              public boolean dispatchKeyEvent(KeyEvent e) {
                  if(ENTER) {
                     checkInput();
                  } else {
                     input += KeyEventZeichen;
                  }
              }
       });
   }

   public void checkInput() {
      if("exit".equals(input)) {
         System.exit();
      } else {
          input = "";
      }
   }

   
}

PS: Habe das mit dem JPanel->Fokus überlesen. Da reicht ein ganz normaler KeyListener + MouseListener mit der oben beschriebenen Logik.

Kein Benutzer, den ich kenne, fängt so aus Spaß an in einem Programm mal einfach drauf los zu tippen!

Ist doch Standard. Windowstaste => Programm suchen. Strg + S => Speichern, Strg + T => Neuer Tab. Er hat es nur ein bisschen seltsam beschrieben.
 
Zuletzt bearbeitet:

Ähnliche Java Themen

Neue Themen


Oben