Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Клавиатура


Автор: ElectricalStorm 25.8.2004, 18:59
Подскажите пожалуйста

Как сделать ввод в TextArea когда она не в фокусе
для немецкой клавиатуры, тоесть со всеми умлаутами и прочая...

?

Автор: DarkDS 25.8.2004, 19:03
В смысле не в фокусе?

Автор: ElectricalStorm 25.8.2004, 19:45
в прямом, фокус стоит неизвесно где

Автор: Domestic Cat 25.8.2004, 19:49
Странно. Ну, можно ловить кей ивенты и добавлять как текст.

Автор: ElectricalStorm 25.8.2004, 20:46
в том то и дело что как ловить эти кей евенты ?

Автор: Domestic Cat 25.8.2004, 21:13
Например, так:

Код

public class Test extends JFrame implements KeyListener
{
   JTextArea area = new JTextArea(2, 30);
   public test()
   {
       setSize(300, 300);
       JPanel panel = new JPanel();
       panel.setLayout(new BorderLayout());
       panel.add(area, BorderLayout.NORTH);
       JPanel panel2 = new JPanel();
       JButton button = new JButton("  ");
       panel2.add(button);
       button.addKeyListener(this);
       getContentPane().add(panel2, BorderLayout.CENTER);
       getContentPane().add(panel, BorderLayout.NORTH);
       setDefaultCloseOperation(EXIT_ON_CLOSE);
       setVisible(true);
   }

   public void keyPressed(KeyEvent ke)
   {
       area.append(ke.getKeyChar() + "");
       ke.consume();
   }
   
   public void keyReleased(KeyEvent ke)
   {}
   
   public void keyTyped(KeyEvent ke)
   {}
   
   public static void main(String [] arguments)
   {
       new Test();
   }
}



Здесь баттон будет их ловить, если получит фокус. Учти, что тогда lистенер нужно добавлять ко всем нужным компонентам.
А почему бы просто не использовать myTextArea.requestFocus()?

Автор: ElectricalStorm 26.8.2004, 09:09
спасибо !

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)