Hallo Zusammen,
ich habe ein folgendes Problem:
in unserem Projekt sind alle inhaltüberdeckende Flächen als JWindow implementiert, da wir (leider) in der Oberfläche AWT-Canvas haben (müssen), die sonst ja alles leichtgewichtige überdecken.
Unter anderem gibt es für die Touch-Screen-Arbeitsplätze eine Online-Tastatur, die quasi statisch ist und ein bzw. ausgeblendet werden kann mit dem Textobjekt und einem KeyListener als Parameter.
Allerdings verliert die Textbox, die das Ausklappen des Keyboards in ihrem MouseListener verantwortet, dabei den Fokus und kriegt ihn erst wieder durch den weiteren Mouseklick dahin, oder aber beim Druck auf die Tasten der gezeichneten Tastatur. Die dann ein Keyerreignis am KeyListener auslösen, wo u.a. ein textBox.requestFocus() ist.
Ein textBox.requestFocus() jedoch, direkt nach dem Einblenden und Einbinden der Tastatur aufgerufen, bringt gar nichts und mich zur Verzweifelung.
ich habe ein folgendes Problem:
in unserem Projekt sind alle inhaltüberdeckende Flächen als JWindow implementiert, da wir (leider) in der Oberfläche AWT-Canvas haben (müssen), die sonst ja alles leichtgewichtige überdecken.
Unter anderem gibt es für die Touch-Screen-Arbeitsplätze eine Online-Tastatur, die quasi statisch ist und ein bzw. ausgeblendet werden kann mit dem Textobjekt und einem KeyListener als Parameter.
Allerdings verliert die Textbox, die das Ausklappen des Keyboards in ihrem MouseListener verantwortet, dabei den Fokus und kriegt ihn erst wieder durch den weiteren Mouseklick dahin, oder aber beim Druck auf die Tasten der gezeichneten Tastatur. Die dann ein Keyerreignis am KeyListener auslösen, wo u.a. ein textBox.requestFocus() ist.
Ein textBox.requestFocus() jedoch, direkt nach dem Einblenden und Einbinden der Tastatur aufgerufen, bringt gar nichts und mich zur Verzweifelung.
Code:
textBox.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (DHPAsgard.getMainFrame().getKeyboard() != null && !DHPAsgard.getMainFrame().getKeyboard().isVisible()){
logger.debug("Keyboard wieder sichtbar gemacht!");
DHPAsgard.getMainFrame().getKeyboard().setVisible(true);
DHPAsgard.getMainFrame().getKeyboard().setOutput(textBox, texBoxKListener);
textBox.requestFocus(); // <- WIRKUNGSLOS
}
}
});
Anhänge
Zuletzt bearbeitet: