Я попытался сделать JTextArea в своем приложении Java.Swing, используя NetBeans, чтобы при нажатии кнопки Enter. В JTextArea отобразится «КНОПКА НАЖМИТЕ».KeyPressedEvent to SetText для JTextArea
Вот что у меня есть:
private void keyPressedEvent(java.awt.event.KeyEvent evt)
{
if(evt.getKeyCode() == KeyEvent.VK_ENTER)
{
System.out.println("HERE"); //For sanity check.
txtArea.setText("BUTTON PRESSED");
System.out.println("HERE AGAIN"); //For sanity check
}
}
Я заметил, что операторы печати выполняются, но txtArea не устанавливает текст.
Я провел некоторое исследование и считаю, что evt.consume()
следует называть где-то, но я не уверен, как это работает.
EDIT: Я попытался поставить evt.consume()
в if-block
и он еще не установил текст.
Добавление ключевого слушателя, как это:
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jTextArea1.setColumns(20);
jTextArea1.setRows(5);
jTextArea1.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent evt) {
KeyPressedEvent(evt);
}
});
jScrollPane1.setViewportView(jTextArea1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(59, 59, 59)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(175, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(40, 40, 40)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(164, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
1) Для лучшей помощи рано, опубликовать [SSCCE] (http://sscce.org/). 2) Посмотрите на привязки клавиш вместо 'KeyListener'. 3) В J2SE нет такого класса или метода, как 'KeyPressedEvent'. Скопируйте/вставьте эти вещи, а не создавайте их. –
Любые ошибки/stacktrace, когда setText не работает? – acostache
Ошибок нет. Я обновил OP. Я использовал NetBeans, чтобы добавить событие KeyPressed, перейдя в RightClick => Свойства => Добавить нажатое событие клавиши – Rhs