我有一个问题。在我的应用程序中,我有一个按钮,当我单击它时,文本保存在String变量中,当变量不在操作按钮内时,值为NULL,如何保存变量中的值并使用它后来。
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)
退出时String tstr1
保留已保存的数据。
答案 0 :(得分:2)
这不是一个很好的做法,但您是否尝试将var声明为全局?
这样你的var可以随意保留值。
private String globalString;
private void functions() {
...
}
答案 1 :(得分:1)
您可以在班级中创建
字段
private String tstr1;
并在您的方法中,您可以指定值
tstr1 = driver.findElement(By.xpath("//*[@id='content']")).getText();
当您需要访问该字段时,您可以致电
tstr1;
答案 2 :(得分:1)
确切地说,您需要做的就是定义一个全局变量。如果要从类外部访问变量,只需添加一个Getter:
public String getTStr1() { return tstr1; }
如果您想要保存多个字符串,只需以全局方式使用List,例如
private List<String> tStrings = new ArrayList<String>();
并将每个tstr1添加到列表
tStrings.add(tstr1);
然后您不需要全局tstr1字段。
答案 3 :(得分:0)
在函数外部将其定义为对象成员
BorderThickness="0"
IsReadOnly="True"