Java 当我在JTextArea中按enter键时,我想使用Key Listener来监听,但它不起作用

Java 当我在JTextArea中按enter键时,我想使用Key Listener来监听,但它不起作用,java,swing,jtextarea,keylistener,Java,Swing,Jtextarea,Keylistener,在我的类设置中,我用一个新的键侦听器创建了一个JTextArea: startWin来自我的Window类,text是该类中的JTextArea对象 stroint是一种不使用解析方法将字符串转换为int的方法 startWin.text.addKeyListener(new KeyListener() { int s; @Override public void keyPressed(KeyEvent e) {

在我的类设置中,我用一个新的键侦听器创建了一个JTextArea:

startWin来自我的Window类,text是该类中的JTextArea对象

stroint是一种不使用解析方法将字符串转换为int的方法

        startWin.text.addKeyListener(new KeyListener() {

        int s;
        @Override
        public void keyPressed(KeyEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void keyReleased(KeyEvent e) {
            // TODO Auto-generated method stub

        }

        @Override
        public void keyTyped(KeyEvent e) {

            if(e.getKeyCode() == KeyEvent.VK_ENTER){
            start = setup.StrToInt(startWin.text.getText()); //start is static
        }

        }
    });
    s = start;
    return s;
我的目标是在文本中输入一个值,然后按enter键返回该值并将其存储到start

但当我这样做的时候:

public void Maze(Window w) {
    int start = 0;

    w = setup.StartWindow(w);
    while (start == 0) {
        start = setup.Start(w);
    }
}

我得到一个运行时错误。我做错了什么?谢谢

我看了看,发现你的int s有一个问题;以前是在方法之外吗

  int s;
  startWin.text.addKeyListener(new KeyListener() {


    @Override
    public void keyPressed(KeyEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void keyReleased(KeyEvent e) {
        // TODO Auto-generated method stub

    }

    @Override
    public void keyTyped(KeyEvent e) {

        if(e.getKeyCode() == KeyEvent.VK_ENTER){
        start = setup.StrToInt(startWin.text.getText()); //start is static
        s = start;
    }

    }
});
  return s;

错误是什么?另外,设置的类型是什么?如果不允许用户按enter键,为什么要使用JTextArea?如果只需要一行输入,请使用JTextField。在这种情况下,您可以将ActionListener附加到它,当按enter键时将触发它。