我正在尝试在附带了ActionListener的ActionListener中使用JTextFeild的getText()方法...问题是我没有指向它的引用...也就是说,我正在循环添加这些textFeilds它从arraylist中获取一个字符串并显示新的textFeild,我搜索了Internet试图找到一种使用getText()的方法,但这是没有意义的,因为我没有参考。对此,我的问题是如何在此动作侦听器的JTextFeild中获取文本,并且有什么方法可以获取对该动作执行的对此JTextFeild的引用?

 JTextField t;
 for(MyClass m: MyArraylist) {
     t=new JTextField(m.toString());
     t.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                    System.out.println(getText());
                    }
                    });
      }


我已经尝试过getText(); super.getText(); t.getTaxt();并且确保它不会因为t总是变化而起作用,我也尝试了system.out.println(m.toString());并且不起作用

最佳答案

您应该获取事件的来源并将其投射到TextField

t.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        TextField tf = (TextField) e.getSource();
        System.out.println(tf.getText());
    }
});

关于java - 在actionListener中获取JTextField的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59274567/

10-11 15:06