NetBeansを使用してJava.SwingアプリケーションでJTextAreaを作成しようとしたので、Enterボタンを押したときに。JTextAreaには「BUTTONPRESSED」と表示されます。
これが私が持っているものです:
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
}
}
printステートメントは実行されていますが、txtAreaがテキストを設定していないことに気付きました。
evt.consume()
私はいくつかの調査を行い、それはどこかで呼ばれるべきだと信じていますが、それがどのように機能するのかわかりません。
編集:私は入れてみ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>