在我的應用程序中,我使用FileChooser來選擇一個文件。所選文件的名稱應該返回到另一個類。如何在eclipse中做到這一點?actionPerformed可以返回一個值嗎?
1
A
回答
0
查看FileChooserDemo和FileChooserDemo2 here瞭解FileChooser的使用方法。
下面是代碼的相關摘錄:
public void actionPerformed(ActionEvent e) {
//Set up the file chooser.
if (fc == null) {
fc = new JFileChooser();
//Add a custom file filter and disable the default
//(Accept All) file filter.
fc.addChoosableFileFilter(new ImageFilter());
fc.setAcceptAllFileFilterUsed(false);
//Add custom icons for file types.
fc.setFileView(new ImageFileView());
//Add the preview pane.
fc.setAccessory(new ImagePreview(fc));
}
//Show it.
int returnVal = fc.showDialog(FileChooserDemo2.this,
"Attach");
//Process the results.
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();
log.append("Attaching file: " + file.getName()
+ "." + newline);
} 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);
}
0
假設「A」級包含的代碼顯示文件選擇器和「B」類所需要的價值,下面會做你的需要。
class A {
private PropertyChangerSupport changer = new PropertyChangerSupport(this);
private File selectedFile = null;
public void addPropertyChangeListener(String property, PropertyChangeListener listener) {
changer.addPropertyChangeListener(property, listener);
}
public void removePropertyChangeListener(String property, PropertyChangeListener listener) {
changer.removePropertyChangeListener(property, listener);
}
public void actionPerformed(ActionEvent evt) {
// Prompt the user for the file
selectedFile = fc.getSelectedFile();
changer.firePropertyChange(SELECTED_FILE_PROP, null, selectedFile);
}
}
class B {
public B(...) {
// ...
A a = ...
a.addPropertyChangeListener(new PropertyChangeListener() {
public void propertyChanged(PropertyChangeEvent evt) {
if (evt.getPropertyName().equals(A.SELECTED_FILE_PROP)) {
File selectedFile = (File)evt.getNewValue();
// Do something with selectedFile
}
}});
}
}
3
actionPerformed是在由事件分派線程調用時的一些事件(一個按鈕被點擊,例如),它不應該被直接調用。如果您想要一種顯示FileChooser並返回選定文件的方法,則聲明可以由eventHandler以及其他任何地方調用的另一種方法:
public void actionPerformed(ActionEvent e) {
File myFile = selectFile();
doSomethingWith(myFile);
}
public File selectFile() {
int returnVal = fc.showDialog(FileChooserDemo2.this,
"Attach");
//Process the results.
if (returnVal == JFileChooser.APPROVE_OPTION) {
return fc.getSelectedFile();
} else {
return null;
}
}
相關問題
- 1. gcc可以返回一個值嗎?
- 2. Runnable可以返回一個值嗎?
- 3. 我可以從另一個函數返回返回值嗎?
- 4. 你可以返回一個b2Fixture嗎?
- 5. PHP - 可以返回一個指針嗎?
- 6. Codeigniter:我可以從同一個函數返回多個值嗎?
- 7. '返回'可以返回C中的多個值嗎?
- 8. Qt信號可以返回一個值嗎?
- 9. JustMock可以根據參數返回一個值嗎?
- 10. Datagrid返回一個空值,我可以替換它嗎?
- 11. 函數可以返回*只是一個rgba值嗎?
- 12. 我可以通過C++中的值返回一個數組嗎?
- 13. 我可以有一個返回數組值的方法嗎?
- 14. MongoDB聚合框架$ group可以返回一個值數組嗎?
- 15. 我可以重寫一個Lua表的返回值嗎?
- 16. 可以返回一個布爾值嗎? => return $ aantal == 0;
- 17. Java - 丟棄Future返回值可以嗎?
- 18. 可以tr1 ::函數swallow返回值嗎?
- 19. 可以INSERT IGNORE返回附加值嗎?
- 20. JAX-WS可以返回布爾值嗎?
- 21. STUFF函數可以返回NULL值嗎?
- 22. 可以忽略返回值嗎?
- 23. Swift返回一個值在函數之前Parse可以返回一個值
- 24. 你可以在Scala中返回一個可賦值的左值嗎?
- 25. 一個方法可以返回一個文件嗎?
- 26. 一個方法可以返回一個NSRange嗎?
- 27. 一個函數可以返回一個數組嗎?
- 28. 一個WCF服務可以返回一個嗎?
- 29. 一個New-Module可以返回一個psobject嗎?
- 30. 一個SQL過程可以返回一個表嗎?