Keymap空格键在Java中输入键操作

时间:2016-12-09 06:48:24

标签: java dictionary key enter

我试图这样做,以便不是在我的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();

    }
}

0 个答案:

没有答案