Frage

Ein einfaches Beispiel: 2 JTextFields, eine für ein spanisches Wort für sie eine andere Übersetzung ist. Gibt es eine Möglichkeit Tastaturlayout pro JTextField zu bewahren, so dass der Benutzer nicht wechseln muß hin und her?

TIA.

War es hilfreich?

Lösung

Ja, der Demo-Code verwendet das Tastaturlayout für die ausgewählten Schauplätze in jedem Textfeld:

public class InputMethodTest {

  public static void main(String[] args) {
    final InputContext en = InputContext.getInstance();
    en.selectInputMethod(Locale.UK);
    final InputContext es = InputContext.getInstance();
    es.selectInputMethod(new Locale("es", "ES"));
    JTextArea english = new JTextArea() {
      @Override
      public InputContext getInputContext() {
        return en;
      }
    };
    JTextArea spanish = new JTextArea() {
      @Override
      public InputContext getInputContext() {
        return es;
      }
    };

    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(new GridLayout());
    frame.getContentPane().add(new JScrollPane(english));
    frame.getContentPane().add(new JScrollPane(spanish));
    frame.setSize(600, 400);
    frame.setVisible(true);
  }
}

Getestet auf Windows XP Home mit EN und ES Tastaturlayout installiert (über Systemsteuerung> Regions- und Sprachoptionen> Sprachen> Details ...). Sehen Sie sich die Java Input Method Framework- für weitere Details .

Andere Tipps

Nein, Tastatur-Layout durch das Betriebssystem oder Desktop-Umgebung verwaltet werden.

Wenn Sie genau das Layout der spanischen Tastatur in Frage wissen, dass Sie theoretisch KeyEvents selbst verarbeiten können, so dass sie in das entsprechende Zeichen zu übersetzen. Dies würde jedoch keine einfache Sache zu tun. Sie würden wahrscheinlich Zeichen in die Textfelder selbst am Ende eingefügt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top