Tag: keylistener

使用Java创建Snake

我决定使用Java重新创建Snake,但我有点卡住了。 目前,我有一个方块,用户可以使用箭头键在屏幕上移动。 当您按下LEFT一次时,方块开始使用计时器向左移动。您不需要按住键或继续按下它; 当您按下任何其他设置的键(右,上,下)时,它会改变方向。 我的目标是使用ArrayList来保存构成蛇的方块。 目前,我创建了一个只包含一个Snake对象的ArrayList,如果我将第二个Snake对象添加到列表中并将其添加到框架(第一个),则只能看到一个Snake对象以及要移动的键它不起作用。 我正在寻找一些关于如何在这个项目上取得进展的想法 – 请不要给我完整的答案,因为我想自己弄清楚它的大部分内容; 我只需要一些方向。 提前致谢 – 代码如下。 import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Snake extends JPanel implements KeyListener, ActionListener { int x = 0, y = 0, velx = 0, vely = 0; Timer t = new Timer(250, this); public Snake(int num1, int num2) { t.start(); addKeyListener(this); […]

全屏窗口不会使用KeyListener或KeyBoardFocusManager获取键盘输入

让我的KeyBoardFocusManger与我的全屏Window一起工作时遇到问题。 无论如何,它只是不会得到键盘输入。 我使用System.exit(0)和println()来查找对keypressed / release / typed方法的任何调用,但不会抛出任何错误。 我试过KeyListeners ; 但在我读完之后,我改为使用KeyboardFocusManager ,同样的事情仍然发生。 我真的很绝望; 从我可以判断, Window没有得到键盘的焦点? 这是我的主要内容: public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { // Determine if full-screen mode is supported directly GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice gs = ge.getDefaultScreenDevice(); if (gs.isFullScreenSupported()) { Frame frame = new Frame(gs.getDefaultConfiguration()); SpaceInvaderUI spaceInvaderUI […]

侦听组件层次结构的关键事件

我有一个Swing应用程序,需要根据是否按下控制键或alt键显示不同的控件组。 我向主组件添加了一个KeyListener,但只有在选择了该组件时才通知它,而不是在选择了一个子组件时。 有没有办法听取组件和所有后代的事件? 编辑: 我尝试使用主要组件的InputMap,但按下修饰键时不会触发任何事件。 具体来说,我有以下代码: InputMap inputMap = panel.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); inputMap.put(KeyStroke.getKeyStroke(“pressed CONTROL”), “test1”); inputMap.put(KeyStroke.getKeyStroke(“released CONTROL”), “test2”); ActionMap actionMap = panel.getActionMap(); actionMap.put(“test1”, new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { System.out.println(“pressed”); } }); actionMap.put(“test2”, new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { System.out.println(“released”); } }); 按下并释放控制键时,将打印“已释放”但未“按下”。 没有其他任何东西在任何InputMap中注册任何东西,所以它不像其他东西注册了相同的键击。

输入监听器应该同步吗?

我在下面发布的示例代码显示了两个类。 一个实现了KeyListener,另一个实现了Runnable,并且每20毫秒就会在一个无限循环中运行。 当按下一个键时,keyChar(以int的forms)用作索引,设置布尔数组的索引为true或false,表示是否按下了键。 同时,进程循环在键数组中搜索其真值或假值,并将true值设置为false,然后打印出char。 我的问题是我是否需要使用锁来访问charArray,因为它在两个线程中使用:进程线程和键侦听器线程。 示例代码: import java.awt.Component; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; public class Input implements KeyListener { public boolean[] charArray; public Input(Component component) { charArray = new boolean[127]; component.addKeyListener(this); } @Override public void keyPressed(KeyEvent e) { (possible synchronization with a lock?) int keyChar = e.getKeyChar(); if (keyChar == 27 || keyChar == 9 || […]

KeyListener事件显然没有在java applet中触发

我刚刚开始学习编程applet和java GUI,我试图制作一个简单的游戏。 目前,我有主要类(游戏)和玩家类(玩家)我让玩家绘制到屏幕上,但我正在努力让关键事件发挥作用,任何帮助赞赏! 玩家图像显示完美,但是当我完全按下按键时位置不会改变。 编辑:为播放器发布错误代码,更新 Game.java: public class Game extends Applet { Player player; @Override public void init() { player = new Player(this); this.setSize(800, 600); addKeyListener(player); } @Override public void paint(Graphics g) { player.paint(g); } } Player.java: public class Player implements KeyListener { Game game; Image image; int x; int y; public Player(Game game) { […]

如何在Java中按下/键入TAB键?

private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) { //cant capture my TAB? System.out.print(evt.getKeyChar()); } 在没有使用焦点监听技术的情况下,java gui中捕获tab键的最简单方法是什么?

多媒体密钥的Java接口

任何人都有与Java中的多媒体[或Fnfunction]键接口的经验? 这里似乎有关于Java中多媒体按钮的不完整讨论。 还有一个库JIntelliType ,可用于在Windows中注册全局热键,但仅适用于全局注册,而不适用于媒体键。

Java Keylistener没有窗口打开?

我正在尝试用Java创建一个自动点击器(只有我知道的语言,我刚刚学习了Threads)。 我想让applet在它自己的窗口中打开(不在网页上),我希望能够在没有选择窗口的情况下使用空格键启动和停止程序,这样我就可以在另一个程序上使用自动点击器并且能够在没有alt-f4ing一堆东西的情况下阻止它。 有什么可以推荐给我的,可以帮助我吗? 或者你有什么建议吗?

Java KeyListener:KeyTyped Backspace,Esc作为输入

在KeyTyped方法内部,如何判断是否按下了Backspace或Esc ?

Java Swing – KeyListener

我如何知道键入的键何时更改我的文本? 或者如果密钥是char?