Java 当按下某个键时,如何使用键侦听器(或其他方法)触发循环或方法?

Java 当按下某个键时,如何使用键侦听器(或其他方法)触发循环或方法?,java,Java,考虑: 公共类CreateFileDir实现KeyListener{ int i=0; 按下公共布尔值=false; 这就是我给布尔值“pressed”设置为false的地方,我想让它做的是当我按下“x”键时,它会将其切换为true,一旦释放,就会切换为false 另一方面,我希望这个程序在IDE控制台之外工作。我让它在没有键侦听器的情况下工作,但它在后台运行时必须工作。我不能使用切换按钮,除非我可以将它绑定到给定的键(例如x)。我也没有弹出窗口,就像我希望它在后台运行一样 public

考虑:

公共类CreateFileDir实现KeyListener{
int i=0;
按下公共布尔值=false;

这就是我给布尔值“pressed”设置为false的地方,我想让它做的是当我按下“x”键时,它会将其切换为true,一旦释放,就会切换为false

另一方面,我希望这个程序在IDE控制台之外工作。我让它在没有键侦听器的情况下工作,但它在后台运行时必须工作。我不能使用切换按钮,除非我可以将它绑定到给定的键(例如x)。我也没有弹出窗口,就像我希望它在后台运行一样

    public void keyPressed(KeyEvent e) {
        // TODO Auto-generated method stub
        if(e.getKeyCode() == KeyEvent.VK_X) {
            pressed = true;
        }
    }

    @Override
    public void keyReleased(KeyEvent e) {
        // TODO Auto-generated method stub
        if(e.getKeyCode() == KeyEvent.VK_X) {
            pressed = false;
        }   
    }
    @Override
    public void keyTyped(KeyEvent e) {
        // TODO Auto-generated method stub  
    }
这就是我的IDE(Eclipse)所说的我需要使用键侦听器。我的想法是,当我按下并按住X时,按下将变为真,但当我松开X时,按下将变为假

public void robo() throws Exception {
        Robot robot = new Robot();
        while(pressed) {
这就是我希望while循环在按下为true时运行的地方。我试图将它放在main中,但它说按下将需要是静态的,这会弄乱KeyListener方法

public static void main(String[] args) throws Exception {
        CreateFileDir s2i = new CreateFileDir();
            while(1==1) {   
                    s2i.robo();
这是我的主要方法,它不断地以1==1
while
循环运行。然后,当我按下X键时,我想要
while(pressed)


如何解决此问题?

这是否回答了您的问题?我可以使用带有键绑定的JToggleButton吗?对于我的程序,我不能左键单击它,我需要在按下给定键(如“x”)时运行,而且在运行时我没有使用JFrame或任何弹出窗口