后,我有Menu
类按钮 - newGame并退出:按钮JFrame的活跃创造新JPanel
public class Menu extends JFrame
{
JButton newGameButton = new JButton();
...
@Override
public void mouseClicked(MouseEvent e)
{
game.start();
}
}
点击按钮,新的游戏开始后,所以该类:
public class Game extends JPanel implements Runnable
{
private Thread t;
public void start()
{
t = new Thread(this);
t.start();
setVisible(true);
}
}
当我创建JPanel
后,游戏启动并且按钮不可见,但是如果我单击某个按钮的位置,该按钮会闪烁并继续。我正在使用paintComponent(g)
方法进行绘制,之前我在Canvas
而不是JPanel
上进行了绘制,之后将其更改为JPanel
我有这个问题,有什么想法吗?
编辑:here是工作(Canvas)和非工作(JPanel)代码,在JPanel中我可以多次点击按钮,因为我想要的。
为了更好地帮助越早,张贴[MCVE](http://stackoverflow.com/help/ mcve)(最小完整和可验证示例)。另外,那个'Runnable'看起来不对。所有的GUI更新都应该在EDT上,并且运行它的'Thread'不是。 –
您是否尝试过我的解决方案发布在[KeyListener仅在点击画布后激活](http://stackoverflow.com/questions/22724286/keylistener-active-only-after-click-on-canvas/22724561#22724561)。根据您的意见,它在Canvas中工作正常,但现在它在使用JPanel后无法工作。试试我的解决方案,您不需要将其转换为JPanel。 – Braj
感谢Braj的帮助,但是我删除了KeyListener,现在我正在使用密钥绑定并且它的工作非常完美。 –