2014-08-28 3 views
0

Я делаю простой текстовый редактор на Java, чтобы писать программы. Я застрял в создании ActionListener, который активируется всякий раз, когда вводится пробел.Чтение последнего символа, введенного из JTextArea

Итак, когда вы печатаете текстовую область и нажимаете пробел, она будет читать последнее слово, которое вы набрали.

Вот основные части моего кода.

Я сделал прослушиватель действий и все остальное, теперь мне просто нужно сделать это для чтения.

JTextArea textarea = new JTextArea("@ECHO off" + "\n"); 
Font textareaFont = new Font("Arial", Font.BOLD, 15); 

action event = new action(); 

textarea.setFont(textareaFont); 
textarea.setForeground(Color.BLUE); 
textarea.setLineWrap(true); 
textframe.getContentPane().add(new JScrollPane(textarea)); 
textframe.setSize(525,715); 
textframe.setLocationRelativeTo(null); 
textframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
textframe.setVisible(true); 
} 

private class action implements ActionListener { 
    public void actionPerformed(ActionEvent event) { 

    } 
} 

Извините, если я не буду чист.

+0

Поиск Google для "Java Key Bindings" – ControlAltDel

+0

Возможные [дублирующих] (http://stackoverflow.com/q/25447485/2587435) –

ответ

1

Я думаю, вам нужен KeyListener, а не ActionListener.

Возможно, что-то вроде этого:

textarea.addKeyListener(new KeyAdapter() { 
    public void keyPressed(KeyEvent evt) { 

     if (evt.getKeyCode() == KeyEvent.VK_SPACE) { 

      //do your stuff here 
     } 
    } 
} 
0

Вы не можете выполнить эту работу с помощью ActionListener, поскольку компоненты текста Swing не срабатывают ActionEvent s в ответ на (самые) нажатия клавиш. Проконсультируйтесь с the key binding docs для получения информации о том, как добиться того, что вам нужно, но, возможно, a refresher on Swing overall будет в порядке.