Pregunta

Ejemplo simple: 2 JTextFields , uno para una palabra en español y otro para su traducción. ¿Hay alguna manera de preservar la distribución del teclado por JTextField para que el usuario no tenga que cambiar de un lado a otro?

TIA.

¿Fue útil?

Solución

Sí, este código de demostración utiliza la distribución del teclado para las configuraciones regionales seleccionadas en cada campo de texto:

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

Probado en Windows XP Home con diseños de teclado EN y ES instalados (a través del Panel de control > Opciones regionales y de idioma > Idiomas > Detalles ...). Consulte el Marco de métodos de entrada de Java para obtener más detalles .

Otros consejos

No, los diseños de teclado son administrados por el sistema operativo o el entorno de escritorio.

Si conoce exactamente la disposición del teclado en español en cuestión, podría procesar KeyEvents usted mismo, traduciéndolos al carácter apropiado. Sin embargo, esto no sería una cosa fácil de hacer. Probablemente termine insertando caracteres en los campos de texto usted mismo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top