gpt4 book ai didi

java - KeyPressedEvent 到 JTextArea 的 SetText

转载 作者:行者123 更新时间:2023-12-01 17:25:50 24 4
gpt4 key购买 nike

我尝试使用 NetBeans 在我的 Java.Swing 应用程序中创建一个 JTextArea,以便当我按下 Enter 按钮时。 JTextArea 将显示“BUTTON PRESSED”。

这是我所拥有的:

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() 应该在某个地方调用,但我不确定它是如何工作的。

编辑:我尝试将 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>

最佳答案

对我有用。您如何添加 key 监听器?

test program screenshot

public class TextAreaTest extends KeyAdapter {

private JFrame frame = new JFrame("Text Area Test");
private JTextArea area = new JTextArea();

public static void main(String[] args) {
TextAreaTest test = new TextAreaTest();
test.go();
}

private void go() {
area.addKeyListener(this);
frame.getContentPane().add(area);
frame.setVisible(true);
}

@Override
public void keyPressed(KeyEvent evt) {
if(evt.getKeyCode() == KeyEvent.VK_ENTER)
{
System.out.println("HERE"); //For sanity check.
area.setText("BUTTON PRESSED");
System.out.println("HERE AGAIN"); //For sanity check
}
}

}

关于java - KeyPressedEvent 到 JTextArea 的 SetText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15027037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com