Java:将 TextField 保存到另一个类中使用的字符串

标签 java string gettext actionevent

public  void actionPerformed(ActionEvent e) {
    s = tf1[0].getText();
}

我想将从 tf1[0].getText(); 获取的文本输入保存到 String s 并调用 s我的 main 或在另一个类中,但我得到的是 null 。有没有办法在另一个类中调用s

这是代码的其余部分:

public class GUI {

static String s;
public static void  gui(){

    {   
        try{
        String File_Name="C:/Users/Ray/Desktop/test.txt";
        ReadFile rf=new ReadFile(File_Name);
        JFrame f1=new JFrame("Maintest");
        JPanel p1=new JPanel();
        JPanel p2=new JPanel();
        final String[] aryLines=rf.OpenFile();
        final JTextField tf1[];
        tf1=new JTextField[22];
        JButton []b1=new JButton[6];
        String bNames="OK";
        final JTextField tf2[]=new JTextField[aryLines.length];
        f1.setSize(200,450);


        JLabel l1[]=new JLabel[20];

        for ( int i=0; i < aryLines.length; i++ )
        {
            b1[i]=new JButton(bNames);
            l1[i]=new JLabel("Enter Serial# for "+ aryLines[i]);

            p1.add(l1[i]);p1.add(tf1[i] = new JTextField());p1.add(b1[i]);
        }


            p1.setLayout(new BoxLayout(p1,BoxLayout.PAGE_AXIS));

            f1.add(p1,BorderLayout.WEST);



                b1[0].addActionListener(new ActionListener(){
                private String s2;

                public  void actionPerformed(ActionEvent e) 
                {

                    s=tf1[0].getText();
                    System.out.print(s);

                }


                });

            f1.show();
        }

            catch(Exception e)
            {
                System.out.print(e);
            }

    }
}


}

最佳答案

对此有几个解决方案。您可以将“s”设置为基于类的变量,可以从对象实例中检索该变量,如下所示:

public String getS(){
   return this.s;
}

这里:

public  void actionPerformed(ActionEvent e) {
   this.s = tf1[0].getText();
}

然后在需要 s 的其他类中,您应该实例化包含 s 的类并调用:

String s2 = instantiatedObject.getS();

如果你觉得有点冒险,你可以将“s”设置为静态变量,并且可以在实例化包含“s”的类的任何地方调用它:

String s2 = instantiatedObject.s;

关于Java:将 TextField 保存到另一个类中使用的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38526914/

相关文章:

java - 关于java中使用阻塞队列方法的生产者和消费者模式

java - Angular Spring Boot 打包问题 Whitelabel 错误

php - GETTEXT 函数不会在本地 PhpStorm 开发服务器上翻译页面

javascript - 如何在 Elixir Phoenix 中向客户端提供翻译?

java - Selenium java无法获取html文本

java - Android东西:使用命令writeBuffer,write,byte []在i2c寄存器中写入许多字节

java - "Parent c = new Child()"和 "Child c = new Child()"有什么区别?

ruby-on-rails - 如何准确查看字符串中的字符?

r - 使用grepl提取R中的子字符串

c# - 如何在C#中将字符串分隔成数组?