Domanda

Esempio semplice: 2 JTextFields , uno per una parola spagnola un altro per la sua traduzione. C'è un modo per preservare il layout della tastiera per JTextField in modo che l'utente non debba passare avanti e indietro?

TIA.

È stato utile?

Soluzione

Sì, questo codice demo utilizza il layout della tastiera per le impostazioni locali selezionate in ciascun campo di testo:

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);
  }
}

Testato su Windows XP Home con layout di tastiera EN ed ES installati (tramite Pannello di controllo > Opzioni regionali e linguistiche > Lingue > Dettagli ...). Vedi Java Input Method Framework per maggiori dettagli .

Altri suggerimenti

No, i layout di tastiera sono gestiti dal sistema operativo o dall'ambiente desktop.

Se conosci esattamente il layout della tastiera spagnola in questione, puoi teoricamente elaborare KeyEvents da te, traducendoli nel carattere appropriato. Tuttavia, questa non sarebbe una cosa facile da fare. Probabilmente finiresti per inserire tu stesso i caratteri nei campi di testo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top