java - 如何在 Java 中使用 KeyPressed

标签 java swing jframe jpanel jbutton

我正在做我的 Java 作业。我必须创建一个虚拟键盘,但我的教授没有教我们有关 KeyPressed 的知识,我现在被困了几天。

我的问题是,如果我希望用户在 JTextFiled 中键入某些内容,并希望在用户键入键盘上可用的任何字符时更改 JButton 的背景以显示不同的颜色,我该怎么办那?

例如,如果用户点击空格键,我希望框架上空格键的颜色显示为黑色,并且当用户释放按钮时,颜色更改为其原始背景颜色。

我知道如何创建 JFrame、JButton、JLabel 和 JPanel。

这是我创建的简单代码。

import javax.swing.*;
import java.awt.*;

public class Assignment extends JFrame {

  private JButton jbtnSpace = new JButton(" ");
  private JPanel jpnl1 = new JPanel();

  private JTextArea txta = new JTextArea(10,62);

  public Assignment(){

  jpnl1.add(txta);

  jpnl1.add(jbtnSpace);

  this.add(jpnl1);

  }

  public static void main(String[] args) {

        Assignment jfrm = new Assignment();

        jfrm.setTitle("Assignment");
        jfrm.setSize(710,440);
        jfrm.setVisible(true);
        jfrm.setDefaultCloseOperation(EXIT_ON_CLOSE);

    }

}

请帮忙。谢谢

最佳答案

试试这个:

private void jTextField1KeyTyped(java.awt.event.KeyEvent evt) {                                     

    int i=evt.getKeyChar();
    if(i==KeyEvent.VK_SPACE)     //or any Key Constant
    {
        //your code of changing the color
    }
}

我希望这有帮助。不过,您必须了解其工作原理,如评论之一所述。

关于java - 如何在 Java 中使用 KeyPressed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15779849/

相关文章:

java - 为什么我的相框什么都不显示?

java - 如何获得以另一个 JPanel 为中心的 JPanel 的边界?

java - 我的组件不会显示在 JFrame 上以及如何隐藏另一个框架

java - 执行xp_cmdshell 'wmic ... "java -jar .. ."'时使用哪个帐户

java - 为什么JDK Map.get不支持返回值的类型推断

java - 将我的元素的值更改回零(Java)

java - JFrame、toFront()、 Action 监听器

java - 如果我有自己的日历 API,如何指向下一个工作日

java - 将 JPanel 从一个类添加到另一类中的 JPanel

java - 我需要知道如何在 FlowLayout 中添加空间