- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为我制作的游戏制作高分屏幕,我想使用 keylistener,但没有任何反应。
这是我的代码中需要修复的部分。
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.*;
import java.io.*;
public class score extends JPanel {
public static char highchar[] = new char[10];
public static int i = 0;
public static boolean flag = true;
public static void scr() {
JFrame f = new JFrame("HighScores");
score c = new score();
f.setContentPane(c);
f.setLocation((int) (Toolkit.getDefaultToolkit().getScreenSize()
.getWidth() - 13) / 2 - 200, (int) (Toolkit.getDefaultToolkit()
.getScreenSize().getHeight() - 63) / 2 - 100);
c.setPreferredSize(new Dimension(400, 200));
f.pack();
f.setResizable(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane();
f.setVisible(true);
while (flag) {
c.repaint();
}
}
public score() {
addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
System.out.println("hello");
if (flag) {
if (e.getKeyCode() == KeyEvent.VK_A) {
highchar[i] = 'A';
}
if (e.getKeyCode() == KeyEvent.VK_B) {
highchar[i] = 'B';
}
if (e.getKeyCode() == KeyEvent.VK_C) {
highchar[i] = 'C';
}
if (e.getKeyCode() == KeyEvent.VK_D) {
highchar[i] = 'D';
}
if (e.getKeyCode() == KeyEvent.VK_E) {
highchar[i] = 'E';
}
if (e.getKeyCode() == KeyEvent.VK_F) {
highchar[i] = 'F';
}
if (e.getKeyCode() == KeyEvent.VK_G) {
highchar[i] = 'G';
}
if (e.getKeyCode() == KeyEvent.VK_H) {
highchar[i] = 'H';
}
if (e.getKeyCode() == KeyEvent.VK_I) {
highchar[i] = 'I';
}
if (e.getKeyCode() == KeyEvent.VK_J) {
highchar[i] = 'J';
}
if (e.getKeyCode() == KeyEvent.VK_K) {
highchar[i] = 'K';
}
if (e.getKeyCode() == KeyEvent.VK_L) {
highchar[i] = 'L';
}
if (e.getKeyCode() == KeyEvent.VK_M) {
highchar[i] = 'M';
}
if (e.getKeyCode() == KeyEvent.VK_N) {
highchar[i] = 'N';
}
if (e.getKeyCode() == KeyEvent.VK_O) {
highchar[i] = 'O';
}
if (e.getKeyCode() == KeyEvent.VK_P) {
highchar[i] = 'P';
}
if (e.getKeyCode() == KeyEvent.VK_Q) {
highchar[i] = 'Q';
}
if (e.getKeyCode() == KeyEvent.VK_R) {
highchar[i] = 'R';
}
if (e.getKeyCode() == KeyEvent.VK_S) {
highchar[i] = 'S';
}
if (e.getKeyCode() == KeyEvent.VK_T) {
highchar[i] = 'T';
}
if (e.getKeyCode() == KeyEvent.VK_U) {
highchar[i] = 'U';
}
if (e.getKeyCode() == KeyEvent.VK_V) {
highchar[i] = 'V';
}
if (e.getKeyCode() == KeyEvent.VK_W) {
highchar[i] = 'W';
}
if (e.getKeyCode() == KeyEvent.VK_X) {
highchar[i] = 'X';
}
if (e.getKeyCode() == KeyEvent.VK_Y) {
highchar[i] = 'Y';
}
if (e.getKeyCode() == KeyEvent.VK_Z) {
highchar[i] = 'Z';
}
if (e.getKeyCode() == KeyEvent.VK_SPACE) {
highchar[i] = ' ';
}
if (e.getKeyCode() == KeyEvent.VK_0) {
highchar[i] = '0';
}
if (e.getKeyCode() == KeyEvent.VK_1) {
highchar[i] = '1';
}
if (e.getKeyCode() == KeyEvent.VK_2) {
highchar[i] = '2';
}
if (e.getKeyCode() == KeyEvent.VK_3) {
highchar[i] = '3';
}
if (e.getKeyCode() == KeyEvent.VK_4) {
highchar[i] = '4';
}
if (e.getKeyCode() == KeyEvent.VK_5) {
highchar[i] = '5';
}
if (e.getKeyCode() == KeyEvent.VK_6) {
highchar[i] = '6';
}
if (e.getKeyCode() == KeyEvent.VK_7) {
highchar[i] = '7';
}
if (e.getKeyCode() == KeyEvent.VK_8) {
highchar[i] = '8';
}
if (e.getKeyCode() == KeyEvent.VK_9) {
highchar[i] = '9';
}
if (e.getKeyCode() == KeyEvent.VK_BACK_SPACE) {
i--;
highchar[i] = ' ';
i--;
}
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
flag = false;
}
i++;
System.out.println(highchar[i]);
}
}
});
}
}
能否在不更改 scr 方法的情况下修复 keylistener?
最佳答案
如果您进行过任何搜索,您会发现 KeyListeners 仅在具有焦点的组件上工作,这对于 JPanel 意味着使其可聚焦,someJPanel.setFocusable(true)
然后将焦点分配给它 someJPanel.requestFocusInWindow()
。
您还会看到,如果可能的话,通常要避免使用 KeyListener,以支持 Key Bindings。 .
作为旁注,这让我担心:
while(flag){
c.repaint();
}
在 Swing GUI 中执行 while true 循环是一件危险的事情,因为您会占用事件线程。不要这样做——没有理由这样做。
我看到它是您的 scr 方法的一部分,并且您已经声明,
Can you please fix the keylistener without changing the scr method?
scr方法是你的导师给你的吗?如果是这样,我不会太相信那个导师。
关于Java如何制作Keylistener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20768592/
我正在用 Java 开发一个非常非常简单的互联网浏览器。我已经把大部分内容都写下来了,但我在获取“按 Enter 键发送 URL”部分时遇到了困难。具体来说,当我使用 keyTyped() 方法时,我
我是一名编码新手,大约 10 年前有一点 C++ 经验,现在正在学习 java(大约 4-5 个月)。我正在进行一个小型协作项目,并且我有一些事情需要解决。 代码如下: import java.awt
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.ArrayList; public
我正在尝试向我的输入字段添加一个按键监听器,但无法使其工作。我的输入类型是 text 和 id= "code"。这是我尝试过的: document.querySelector('code').addE
我正在尝试用 Java 创建一个自动点击器(我只知道这门语言,而且我刚学过 Threads)。我想让小程序在它自己的窗口中打开(而不是在网页上),并且我希望能够在不选择窗口的情况下使用空格键启动和停止
我是 BlackBerry 应用程序开发的新手。我希望能够在黑莓(在我的情况下为 8900)打开并且在所有屏幕上时能够监听按键事件,这可能吗? 如果是这样,有人将我引向正确的方向会很棒。我已经在看接口
import java.awt.Canvas; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics;
我对 KeyListener 没有太多经验,但我在我的应用程序中使用了一个,它工作得很好,只是我需要等待输入才能继续我的程序。为此,我做了一个 while 循环,循环直到 String temp 不为
我正在编写一个小游戏。到目前为止,我有一个玩家,他可以在 2D 打印的瓷砖世界中跟随玩家移动。这里有一个小preview . 现在我的玩家移动代码如下所示: KeyListener 类 public
我对 Java 还很陌生,到目前为止我完全是自学的。 现在我正在尝试将 KeyListener 添加到我的 JFrame 类中,我不知道我做错了什么,需要一些帮助。欢迎任何其他提示。 我的 JFram
尽管我将框架注册到了 keyListener,但 keyListener 并未触发操作。在其他代码中,实现 KeyListener 接口(interface)、注册 JFrame 并重写适当的方法就是
我一直在研究这个蛇项目,但并不真正理解为什么键监听器实际上没有更改变量 char 键。我还有一些其他的按键监听器示例,它们都工作正常,但由于某种原因我的无法工作。一些帮助将不胜感激。非常感谢您的帮助。
我在使用 KeyListener 时遇到问题。我将 KeyListener 添加到我创建的 JPanel,但 KeyListener 不起作用。 我的主类代码是 package client; imp
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我正在尝试用java进行一个简单的 react 测试。当屏幕变绿时,我按空格键,女巫应该将 boolean 值“单击为 false 并停止测量时间的循环。实际上,关键监听器什么也不做。我是否将 kea
我有一个扩展 JFrame 的 GUI 类,以及一个扩展 KeyAdapter 的单独内部类 KeyPresses。在 GUI 的构造函数中,我将 KeyAdapter 的实例传递给 addKeyLi
我卡住了,当我点击箭头键时,我的图片无法加载。仅显示第一张图片。然后就什么都没有发生了。我希望能够通过单击箭头键来更改文件夹中的图片。这是代码。 import java.awt.Dimension;
我编写了一个简单的 KeyListener 来识别 Arrow_Left/Right 事件。由于某种原因,我的左键触发了 1 个 VK_LEFT 按下和 1 个 VK_RIGHT 事件(右箭头正常工作
这个问题已经有答案了: java keylistener not called (2 个回答) 已关闭 9 年前。 我遇到了 KeyListener 问题。我创建类(class)gra在构造函数中玩俄
我希望我能以正确的方式描述我的问题。我现在正在编写一个简单的双杆射击游戏,因此我实现了一个实现 KeyListener 的 KeyInputHandler 类。但是当玩家同时按下 2 个按钮时我遇到了
我是一名优秀的程序员,十分优秀!