在Java中存储一个字符串变量,以便以后使用

在Java中存储一个字符串变量,以便以后使用,java,button,repository,preferences,Java,Button,Repository,Preferences,我有个问题。在我的应用程序中,我有一个按钮,当我点击它时,文本保存在字符串变量中,当变量不在操作按钮内时,值为空,我如何从变量中保存值并在以后使用它 private void initialize() { frame = new JFrame(); frame.setBounds(100, 100, 413, 445); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fr

我有个问题。在我的应用程序中,我有一个按钮,当我点击它时,文本保存在字符串变量中,当变量不在操作按钮内时,值为空,我如何从变量中保存值并在以后使用它

private void initialize() {
        frame = new JFrame();
        frame.setBounds(100, 100, 413, 445);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        JButton btnNewButton = new JButton("Word for Search");
        btnNewButton.setBounds(223, 62, 118, 23);
        frame.getContentPane().add(btnNewButton);

        textField = new JTextField();
        textField.setBounds(35, 63, 131, 20);
        frame.getContentPane().add(textField);
        textField.setColumns(10);


        btnNewButton.addActionListener( new ActionListener()
    {
        public void actionPerformed(ActionEvent e)
        {
            search = textField.getText();
            System.out.println("String for car = " + search); 
        WebDriver driver = new FirefoxDriver();
        driver.get("https://en.wikipedia.org/wiki/" + search);
        String tstr1 = driver.findElement(By.xpath("//*[@id='content']")).getText();
        System.out.println("String for car = " + tstr1);

        driver.close();
            }
        }); 

    }  
}

我只想退出
public void actionPerformed(ActionEvent e)
字符串tstr1时保留保存的数据。

在函数之外将其定义为对象成员

    ...
    private String tstr1;
    ...
    private void initialize() {
        ...
        btnNewButton.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                ...
                tstr1 = driver.findElement(By.xpath("//*[@id='content']")).getText();
                ...
            }
        });
    }  

在函数外部将其定义为对象成员

    ...
    private String tstr1;
    ...
    private void initialize() {
        ...
        btnNewButton.addActionListener( new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                ...
                tstr1 = driver.findElement(By.xpath("//*[@id='content']")).getText();
                ...
            }
        });
    }  

您可以在类中创建一个字段作为

私有字符串tstr1

在您的方法中,您可以指定值

tstr1=driver.findElement(By.xpath(“/*[@id='content']”)

当您需要访问该字段时,可以调用

tstr1


您可以在类中创建一个字段作为

私有字符串tstr1

在您的方法中,您可以指定值

tstr1=driver.findElement(By.xpath(“/*[@id='content']”)

当您需要访问该字段时,可以调用

tstr1


这不是一个很好的实践,但是您是否尝试过将您的var声明为全局变量

这样,您的var就可以根据需要保留值

private String globalString;

private void functions() {
   ...
} 

这不是一个很好的实践,但是您是否尝试过将您的var声明为全局变量

这样,您的var就可以根据需要保留值

private String globalString;

private void functions() {
   ...
} 

确切地说,您所需要做的就是定义一个全局变量。如果要从类外部访问变量,只需添加一个Getter:

public String getTStr1() { return tstr1; }
如果要保存多个字符串,只需以全局方式使用列表,例如

private List<String> tStrings = new ArrayList<String>();

那么您就不需要全局tstr1字段。

确切地说,您只需要定义一个全局变量。如果要从类外部访问变量,只需添加一个Getter:

public String getTStr1() { return tstr1; }
如果要保存多个字符串,只需以全局方式使用列表,例如

private List<String> tStrings = new ArrayList<String>();

那么您就不需要全局tstr1字段。

您能提供一个运行示例,简化为必要的部分,以重现您的问题并指出确切的问题所在吗?我刚刚更新了问题。您只需创建一个类实例变量并将字符串保存到I中,您能告诉我怎么做吗????我来自iOS,有
NSUserDefaults
,但在java中我是新手。感谢您提供一个运行示例,简化为必要的部分,以重现您的问题并指出确切的问题在哪里?我刚刚更新了问题。您只需创建一个类实例变量并将字符串保存到I中,如何执行此操作,您能告诉我吗????我来自iOS,有
NSUserDefaults
,但在java中我是新手。谢谢