我正在構建一個圖形用戶界面,並使用FileChooser來接收用戶選擇的文件,所以一切工作正常,但現在我試圖獲取所選文件的路徑很容易通過file.getAbsolutePath()
)。從選擇監聽器中獲取數據java
但不知何故,我不能把它弄出來之類的...我想在與聽者類的字符串路徑,它看起來像這樣:
private void browseButton(Canvas BasicSelection)
{
final Button btnBrowse = new Button(BasicSelection, SWT.NONE);
btnBrowse.setBounds(70, 29, 68, 23);
btnBrowse.setText("Browse");
btnBrowse.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent arg0)
{
filechooser.createAndShowGUI(path);
sbtnBrowse = btnBrowse.getSelection();
}
});
launchEvent();
}
這裏是行動當按鈕被點擊時執行:
public void actionPerformed(ActionEvent e)
{
//Set up the file chooser.
if (fc == null)
{
fc = new JFileChooser();
}
fc.addChoosableFileFilter(new Filter());
fc.setAcceptAllFileFilterUsed(false);
//Show it.
int returnVal = fc.showDialog(FileChooser.this,"Attach");
//Process the results.
if (returnVal == JFileChooser.APPROVE_OPTION)
{
File file = fc.getSelectedFile();
setPath(file);
log.append("Attaching file: " + file.getName() + "." + newline);
// Here is where i would need to get the file... but how ?
}
else
{
log.append("Attachment cancelled by user." + newline);
}
log.setCaretPosition(log.getDocument().getLength());
//Reset the file chooser for the next time it's shown.
fc.setSelectedFile(null);
}
如何從類中獲取文件名?
編輯:我已經嘗試與getters和setters,但奇怪的是,他試圖訪問內容之前,我真的寫在它。
String path ;
/*
Rest of the code ...
*/
public void setPath(File input)
{
if (input != null)
{
this.path = input.getAbsolutePath();
System.out.println("path is now set correctly : ");
}
}
public String getPath()
{
return this.path;
}
如果可能的話,儘量*不*混合SWT和Swing,有一個['FileDialog'(HTTP:在你可以使用的SWT中使用.help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fswt%2Fwidgets%2FFileDialog.html)。對你的問題:創建getter和setter方法或使用'static''字符串變量來存儲路徑... – Baz
@Baz所以你的意思是我應該使用FileDialog **而不是** JFilechooser,對吧? 是的,我試過使用getter和setter,我沒有在我的類中放入一個String路徑,但問題是,當我試圖從外部訪問它時,路徑爲空(他想要在訪問之前選擇路徑文件)。我不知道如何解決這個問題。 – trolologuy
發佈一個答案 – Baz