我正在尝试按下按键1时弹出一个窗口,按下按键2时会弹出一个单独的窗口。
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_1)
{
TicTacToeDriver tic = new TicTacToeDriver();
PointCounter();
}
else if(e.getKeyCode() == KeyEvent.VK_2)
{
HangmanDriver hang = new HangmanDriver();
PointCounter();
}
}
public void keyReleased(KeyEvent e)
{
//do nothing
}
public void keyTyped(KeyEvent e)
{
//do nothing
}
tic tac toe和hangman游戏是由两个独立的人创建的,程序员创建了自己的驱动程序。
答案 0 :(得分:0)
解决方案:
我假设程序员熟悉面向java的编程......
因此,您只需创建其中一个游戏的新对象。
Hangman h = new Hangman();
or
Tick h = new Tick();
Tick.start() //depending on their code.
如果您正在运行Jframe ... 你需要
(insert object name).setVisible(true);
既然你提到他们有驱动程序,我认为他们使用main方法而不是构造函数,即使你提供的代码创建了类的对象。
因此,当单击按钮或按下键时..只需调用驱动程序类的main方法。
hangman.main(null); //this is a terrible way to do it btw.
我还建议使用KeyBindings API而不是keylistener,因为键绑定不需要焦点...这也可能是问题。
另一个问题是......
this.addKeyListener(本);
您必须将keylistener添加到组件中。 但是,这是因为您使用keylistener时出现问题。您添加KeyListener的JComponent可能没有焦点。因此,动作不会触发,直到组件具有焦点并触发动作。