Java 如何使用鼠标听筒?要移动按钮吗?
我目前正在做一个小型棋盘游戏。我必须在按钮阵列上放置“对象”。我想放置的对象是1*1*2等,它们由禁用的按钮表示。有没有什么方法可以让我的键盘监听器移动生成的禁用按钮,因为我无法让它工作Java 如何使用鼠标听筒?要移动按钮吗?,java,swing,jframe,jbutton,keylistener,Java,Swing,Jframe,Jbutton,Keylistener,我目前正在做一个小型棋盘游戏。我必须在按钮阵列上放置“对象”。我想放置的对象是1*1*2等,它们由禁用的按钮表示。有没有什么方法可以让我的键盘监听器移动生成的禁用按钮,因为我无法让它工作 public GuiP1() { super(); Panel.setLayout(null); this.add(Panel); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle("Ba
public GuiP1() {
super();
Panel.setLayout(null);
this.add(Panel);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("BattleshipsP1");
this.setSize(640, 1000);
this.setVisible(false);
this.addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent arg0) {
}
public void keyReleased(KeyEvent arg0) {
if (arg0.getKeyCode() == KeyEvent.VK_RIGHT) {
System.out.println("VK_RIGHT");
} else if (arg0.getKeyCode() == KeyEvent.VK_LEFT) {
System.out.println("VK_LEFT");
} else if (arg0.getKeyCode() == KeyEvent.VK_UP) {
System.out.println("VK_UP");
} else if (arg0.getKeyCode() == KeyEvent.VK_DOWN) {
System.out.println("VK_DOWN");
}
}
public void keyTyped(KeyEvent arg0) {
}
});
Grid();
this.setVisible(true);
}
它听不到按键的声音
谢谢JFluX,您的KeyListener无法工作,因为收听的组件必须是可聚焦的,并且必须具有焦点才能工作。一个混乱的解决方案是通过
- 通过
setFocusable(true)
- 通过
requestFocusInWindow()
- 通过调用
使添加的组件不可聚焦setFocusable(false)
一个更好的解决方案是使用与组件焦点关系不那么密切的组件。是的,你可以,但魔鬼在细节中,你的GUI和代码的细节,你需要与我们分享的东西。您将使用MouseAdapater并将其添加为MouseListener和MouseMotionListener。请将任何代码显示为对原始问题的编辑,因为正如您所看到的,代码在注释中的格式不好。此外,评论通常不会被阅读,因此问题的关键部分应该在实际的原始问题中。如果你能发布一个可运行的——不是你的整个程序,也不是一个代码链接,而是一个向我们展示你的问题的新的小程序——最好检查一下链接。另外,请看一下这个。你可能会从他们那里得到一些不错的想法。等等,我现在很困惑——我们是用鼠标还是用按键侦听器?我无法让鼠标侦听器工作,所以我开始尝试一个按键侦听器,它也不工作,所以我不知道我能做什么或能做什么。。。