2015-09-07 146 views
1

我有一個問題。在我的應用程序中,我有一個按鈕,當我點擊它時,文本被保存在一個字符串變量中,當變量不在裏面時,該按鈕的值爲NULL,我怎樣才能保存變量的值並使用它後來。謝謝。在Java中存儲字符串變量以便稍後使用

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

你能提供一個運行的例子,減少到必要的部分,重現你的問題,並指出確切的問題是在哪裏? – SomeJavaGuy

+1

我剛更新了這個問題。 –

+0

你可以簡單地創建一個類實例變量並將字符串保存到它 – SomeJavaGuy

回答

0

將其定義的功能之外的對象成員

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

謝謝你,它的工作! –

1

您可以在類中創建一個字段作爲

private String tstr1;

和你的方法裏,你可以指定值

tstr1 = driver.findElement(By.xpath("//*[@id='content']")).getText();

當你需要訪問現場,你可以調用

tstr1;

2

不是一個很好的做法,但你試過聲明你的var是全局的嗎?

這種方式你的var可以保持價值只要你想。

private String globalString; 

private void functions() { 
    ... 
} 
1

確切地說,你需要做的就是定義一個全局變量。如果你想從類外部訪問的變量,你可以簡單地添加getter:

public String getTStr1() { return tstr1; } 

如果你要保存剛剛在全球的方式使用列表許多字符串,例如,

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

每個tstr1添加到列表中

tStrings.add(tstr1); 

那麼你並不需要一個全球性的tstr1場。

相關問題