【问题标题】:Make a if statement "fire" a key使 if 语句“触发”键
【发布时间】:2025-12-02 19:45:01
【问题描述】:

我想知道我怎样才能做出一个 if 语句:

if("up".equals(message))
{
     System.exit(0); //What I want to change
}

就好像按键被按下一样?

就像 per-say 我想要这个 if 语句,以便当 up 等于它将输出一个按键的消息,就像我首先按下那个键一样。我不能解释得太好,但我希望这能帮助更多

只为未来的任何人 我用过这个

try {
    Robot robot = new Robot();

    // Simulate a key press
    robot.keyPress(KeyEvent.VK_A); // press a
    robot.keyRelease(KeyEvent.VK_A); // release a

} catch (AWTException e) {
    e.printStackTrace();
}

感谢 Jdsfighter

【问题讨论】:

  • 你的问题我不清楚,能否详细说明?
  • 我可以建议你把 if 转成if (message.equals("up"))..相信我会养成这样的习惯,如果你能节省一天的时间
  • @Smitty 确实如此。它可以隐藏一些可能的错误。
  • 会的!谢谢你,我是java新手

标签: java if-statement key


【解决方案1】:

有很多 tuts、docos 和 q/as 用于捕捉关键事件,例如How can I capture keyboard events are from which keys?

【讨论】:

    【解决方案2】:

    您要物理按键吗?

    如果是的话,方法如下:

    try {
        Robot robot = new Robot();
    
        // Simulate a key press
        robot.keyPress(KeyEvent.VK_A); // press a
        robot.keyRelease(KeyEvent.VK_A); // release a
    
    } catch (AWTException e) {
        e.printStackTrace();
    }
    

    编辑:修订

    在这种情况下,这里有一个很好的 Oracle 示例,介绍了如何创建 keylistener。从那里您可以将这些信息用于您需要的任何东西。 Link

    【讨论】:

    • 不,我想让 if 语句表现得好像它是一个实际的按键
    【解决方案3】:

    您要处理输入吗? 要处理输入,您需要一个 KeyListener。

    例如:

    import java.awt.event.KeyEvent;
    import java.awt.event.KeyListener;
    
    import javax.swing.JFrame;
    
    
    public class InputHandler implements KeyListener {
    
    @Override
    public void keyPressed(KeyEvent e) {
        System.out.println("pressed "+e.getKeyChar());
    
    }
    
    @Override
    public void keyReleased(KeyEvent e) {
        System.out.println("released "+e.getKeyChar());
    
    }
    
    @Override
    public void keyTyped(KeyEvent e) {
        System.out.println("typed "+e.getKeyChar());
    
    }
    public static void main(String[] args) {
        JFrame jf = new JFrame();
        jf.addKeyListener(new InputHandler());
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setVisible(true);
    }
    
    }
    

    【讨论】:

      【解决方案4】:

      您的上下文不是很清楚,但我认为您正在寻找 KeyListener 的实现。检查随附的工作示例,看看是否有帮助。

      import java.awt.event.KeyEvent;
      

      导入 java.awt.event.KeyListener; 导入 javax.swing.JFrame;

      公共类 KeyListenerExample 实现 KeyListener{

      public static void main(String[] args) throws InterruptedException {
          new KeyListenerExample().createFrame();
      }
      
      private void createFrame(){
          JFrame jFrame = new JFrame();
          jFrame.setSize(200, 300);
          jFrame.addKeyListener(this);
          jFrame.setVisible(true);
      }
      public void keyPressed(KeyEvent e) {
          if (e.getKeyCode() == KeyEvent.VK_UP)
          {
              System.out.println("UP arrow key pressed. Going to exit.");
               System.exit(0); //What I want to change
          }else{
              System.out.println("Some key pressed");
          }       
      }
      public void keyTyped(KeyEvent e) {
      }
      public void keyReleased(KeyEvent e) {       
      }
      

      }

      【讨论】: