Tag: keylistener

我想让球逐渐移动

当你按下其中一个方向键时,我试图让球逐渐移动,现在它只是传送。 我想要它,以便你可以看到它移动。 基于这个例子 ,我使用的是键绑定,并且有一个名为delta的变量会导致球移动50个像素,但就像我说的那样,当你按下箭头键时,球只出现50个像素,我想要它就像你要踢球一样,你可以看到它从a点到b点。 转到我觉得问题所在的第89行。 package game; import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.RenderingHints; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.AbstractAction; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.KeyStroke; /** * @see https://stackoverflow.com/questions/6991648 * @see https://stackoverflow.com/questions/6887296 * @see https://stackoverflow.com/questions/5797965 */ public […]

使用KeyAdapter的简单程序在按下几个键后无法注册单个键。 代码解决方案

在简单的绘图程序中,我只是想把基础知识搞定。 我有一个绘制矩形的程序,然后让我向任何方向移动它。 我使用一个线程来顺利行动。 然而,让我感到困扰的是,如果我按下三个键并释放其中两个键,程序将不会检测到第三个键,从而使矩形保持静止。 我在这里要求太多,还是硬件相关? 我有一个非常便宜的键盘。 如果您想乘车,这是完整的计划。 import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; public class Boxxy extends JFrame implements Runnable{ int xPos, yPos, xDir, yDir; MyPanel panel; ImageIcon ii; Image i; public Boxxy() { setSize(400,400); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); panel = new MyPanel(); add(panel); setVisible(true); […]

比较KeyListeners和Key Bindings之间的function

这个问题出现在一个匿名用户低估了我的一个涉及KeyListeners的答案并建议使用Key Bindings时。 这位匿名用户告诉我,KeyListener接口是一个旧的AWT解决方案,不应该使用。 但是,我不知道我是否应该完全相信这些信息。 我已经在各种网站上进行了研究,包括oracle,并且没有发现关于KeyListeners或Key Bindings的function。 我知道这两个人执行类似的任务这一事实,但我不确定“幕后”到底发生了什么,可以这么说。 我倾向于在未来的项目中使用Key Bindings,仅仅是因为我获得的研究表明KeyListener接口要求相关组件具有焦点而Key Bindings没有。 但是,我很困惑。 为什么会这样? Key Bindings的触发方式与KeyListeners的触发方式有何不同? PS我很确定这很罕见,但在某些情况下使用KeyListeners更合适吗?

KeyTypedEvent KeyEvent的KeyCode始终为0?

我在NetBeans IDE中有一个Java Swing应用程序。 我制作了一个表单并将KeyListener附加到我的各种控件中: jButton1.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { keyTypedEvent(evt); } }); 和keyTypedEvent定义如下: private void keyTypedEvent(java.awt.event.KeyEvent evt) { System.out.println(evt); appendDisplay(String.valueOf(evt.getKeyChar())); } 我在evt添加了一个println ,看看会发生什么,并validation我的keylistener是否正常工作。 当我构建并运行我的应用程序时,我意识到输出似乎总是有一个keycode = 0 为了validation这一点,我将println更改为evt.getKeyCode()并且它始终返回0。 我可能完全误解了KeyCode的function,但我认为它可以与Oracle文档中的值进行协调: http://docs.oracle.com/javase/7/docs/api/constant-values.html#java.awt.event.KeyEvent.VK_ESCAPE 例如,VK_ESCAPE的值为27。

当我向Jpanel添加按钮时,KeyListener不起作用

我发现,当我写“pnlMap.add(map [i] [j])”时,keylistener将无效。 map是JButton的集合,pnlMap是JPanel。 公共游戏(玩家){ initComponents(); this.player = player; loadPlayerInfo(); ImageIcon icon = new ImageIcon(“images/items/sword_advanced.png”); this.setIconImage(icon.getImage()); addKeyListener(this); map = new Square2[20][20]; for (int j = 0; j < 20; j++) { for (int i = 0; i < 20; i++) { map[i][j] = new Square2(); pnlMap.add(map[i][j]); } } }

KeyListener无法正常工作

出于某种原因,我的KeyListener只是没有响应KeyPressed事件。 如果重要的话,我在Ubuntu 12.04上。 每按一次键就应该打印“按键”,但不是。 这是代码: import java.awt.event.*; import javax.swing.*; import java.awt.Graphics; public class DisplayPanel extends JPanel { private Tile[][] tiles; private Creature[] creatures; private Dungeon dungeon; private Player player; public DisplayPanel(Dungeon dungeon, Tile[][] tiles, Creature[] creatures, Player player) { this.tiles = tiles; this.creatures = creatures; this.dungeon = dungeon; this.player = player; addKeyListener(new DungeonKeyListener()); requestFocus(); } […]

为什么我不能访问我的面板的getWidth()和getHeight()函数?

我正在编写一个简单的程序来测试基本的GUI。 程序在屏幕中间打印一个字母,允许用户使用箭头键移动它。 一切正常,但是当我尝试在程序开头处将字母居中时,似乎getWidth和getHeight函数没有返回正确的数字。 这是包含我的Panel类的片段 static class LinePanel extends JPanel{ int xCenter = getWidth() /2; int yCenter = getHeight() /2; private int x = xCenter; private int y = yCenter; private char keyChar = ‘A’; public LinePanel(){ addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_DOWN: y += 10; break; case KeyEvent.VK_UP: y […]

Jtextfield和keylistener

我有一个jtextfield(jt),我想在用户输入”e” ,我想在jtextfield中自动写入单词”Example” 。 我用的代码是: KeyListener keyListener = new KeyListener() { public void keyPressed(KeyEvent e) { jt.setText(“Example”); } } 但是当按下e时,这会给出”Examplee” ! 有任何想法吗? 非常感谢

单击按钮后keylistener无法正常工作

我有一个keylistener附加到我的框架在java,我可以检测按键时按任何键,但奇怪的事情正在发生。 我的游戏是一个扫雷游戏,我有一个重启按钮,基本上清理板并重新启动它。 奇怪的是,当我用鼠标点击按钮时,一切都清理得很好并且电路板被提醒但是keylistener停止工作。 更奇怪的是,我有一个jmenuitem基本上自动点击按钮。 所以就像restartbutton.doclick() 如果我点击jmenuitem重新启动它重新启动精细清除一切,keylistener仍然起作用。 我甚至可以看到点击按钮。 任何想法为什么会发生这种情况? 谢谢 这是附在我的主框架上。 这是单击按钮后停止工作的监听器。 frame.addKeyListener(new KeyListener(){ public void keyReleased(KeyEvent e){ } public void keyPressed(KeyEvent e){ System.out.println(“hey”); int keycode = e.getKeyCode(); if(e.isControlDown() & keycode==KeyEvent.VK_C){ balh blah balh } } public void keyTyped(KeyEvent e){ } });

没有应用程序焦点的Java中的事件监听器? (全球按键检测)

我一直在寻找一段时间,每个人似乎都认为只使用Java是不可能的,所以我会给你一个镜头;) 有没有办法让我的Java应用程序监听事件(特别是关键事件),而另一个不相关的应用程序有窗口焦点? 在我的情况下,即使我的Java应用程序没有焦点,我也想要检测用户何时按下了键盘上的“Pause”键。 我听说有些人提到唯一的方法是编写一些C代码并使用JNI。 只是好奇是否有人知道如何避免这种情况? 或者,如果没有,至少是关于c / JNI的非常好的教程? 谢谢