我试图这样做,以便不是在我的java程序中点击输入键来使输入操作发生,我可以改为点击输入键自定义方法正在运行。在这一点上,我已经研究过Hashmaps,但是如果这样做我想做的话我很困惑。任何帮助将不胜感激。看起来这应该是一件容易的事,但由于某种原因,我只是没有得到它的解决方案。
所以,我认为我的代码将是这样的。基本上,我正在制作一个热土豆游戏,我需要让玩家轮流输入一个角色(第1组的e,d和c以及第2组的o,k和n)。这也将涉及GUI界面。 A有一个while循环,一旦定时器达到零就会结束。我想要的是让玩家能够在GUI中输入一个字母到JTextField,然后只需按空格键(因为他们将共享一个键盘)。一旦他们输入了正确的字母(我将其随机化),他们就可以点击空格键,然后他们就会扔掉马铃薯"对其他球员。
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_SPACE)
{
KeyEvent.VK_ENTER;
}
}
我正在使用actionPerformed(ActionEvent ev)方法完成所有这些工作。更完整的代码看起来像这样。 if语句被注释掉,因为我希望在按下主按钮时启动游戏,但是当我取消注释JButton并让它使用String文本时,我得到了大量的编译错误。您输入JTextField的文本。
public void actionPerformed(ActionEvent ev) {
Object eventSource = ev.getSource();
String text = entryText.getText(); // text entered into JText
//JButton eventButton = (JButton) eventSource;
System.out.println(text);
//if (eventButton.equals(main))
{
int totalTime = 1000*(HotPotato.randNum());
long startTime = System.currentTimeMillis();
System.out.println(totalTime/1000);
Boolean p1Start = false;
String input = "";
while (System.currentTimeMillis() - startTime <= totalTime)
{
p1Start = !p1Start;
char a = HotPotato.randLetterBoth(p1Start);
String aString = String.valueOf(a);
while (!input.equals(aString))
{
System.out.print(aString); // temporary, shows test letter
input = theKeyboard.next();
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_SPACE)
{
KeyEvent.VK_ENTER;
}
}
}
}
if (p1Start)
{
System.out.print("Team 2 Wins!");
}
else
{
System.out.print("Team 1 Wins!");
}
setLabels();
myPicture.makeHotPotatoOn(myHotPotato.state());
myPicture.repaint();
}
}