Tôi đã tạo giao diện và tôi muốn thêm chức năng cho phép người dùng mở tệp. Tôi đang sử dụng AWT. Tôi không hiểu cách sử dụng FileDialog. Bạn có thể xin vui lòng cho tôi một ví dụ hoặc một liên kết tốt để giải thích điều này?Làm thế nào để sử dụng FileDialog?
Trả lời
Có một vài mẫu mã here minh họa cách sử dụng nó cho các tác vụ khác nhau.
Điều đó nói rằng, bạn có thể muốn lùi lại một bước và kiểm tra xem awt có phải là nhiệm vụ tốt nhất cho công việc ở đây hay không. Có những lý do hợp lệ để sử dụng nó trên một cái gì đó như swing/swt tất nhiên, nhưng nếu bạn chỉ mới bắt đầu sau đó Swing, IMO sẽ là một lựa chọn tốt hơn (có nhiều thành phần hơn, nhiều hướng dẫn hơn và nó là một thư viện yêu cầu rộng rãi hơn để làm việc với . những ngày này)
Tất cả ba mẫu mã mà liên kết dẫn đến đều giống hệt nhau ... (chỉ cần nói, nếu chúng trông giống nhau, bạn không điên ...) – ArtOfWarfare
Một hoàn chỉnh mã ví dụ, với bộ lọc file:
FileDialog fd = new FileDialog(yourJFrame, "Choose a file", FileDialog.LOAD);
fd.setDirectory("C:\\");
fd.setFile("*.xml");
fd.setVisible(true);
String filename = fd.getFile();
if (filename == null)
System.out.println("You cancelled the choice");
else
System.out.println("You chose " + filename);
điều này đã giúp rất nhiều, nhanh hơn nhiều so với 'JFileChooser' , xấu hổ nó không xử lý tốt ngoại lệ, mà bit 'null' đã vấp ngã tôi. – iKlsR
để thêm vào các câu trả lời bằng @TheBronx - đối với tôi, fd.setFile("*.txt");
không đang làm việc trên OS X. Đây hoạt động:
fd.setFilenameFilter(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
});
Hoặc như một Java 8 lambda ưa thích:
fd.setFilenameFilter((dir, name) -> name.endsWith(".txt"));
Không hoạt động trên Ubuntu. Điều này sửa chữa nó. –
Giải pháp tuyệt vời nhưng giải pháp này sẽ không hoạt động trên Windows. https://docs.oracle.com/javase/7/docs/api/java/awt/FileDialog.html#setFilenameFilter%28java.io.FilenameFilter%29 –
@KenoClayton True. Tôi nghĩ rằng giải pháp đa nền tảng là sử dụng cả hai 'setFile' và' setFilenameFilter'. –
- 1. Làm thế nào để lọc loại tệp trong FileDialog?
- 2. FileDialog không hoạt động
- 3. FileDialog Hành vi DoubleClick
- 4. Làm thế nào để sử dụng inotify?
- 5. Làm thế nào để sử dụng Parcel.readBooleanArray()?
- 6. Làm thế nào để sử dụng Resources.getFraction()?
- 7. Làm thế nào để sử dụng ReadWriteLock?
- 8. làm thế nào để sử dụng glCopyImage2D
- 9. Làm thế nào để sử dụng paramiko.RSAKey.from_private_key()?
- 10. Làm thế nào để sử dụng MonadRandom?
- 11. Làm thế nào để sử dụng SqlCacheDependency?
- 12. Làm thế nào để sử dụng sprof?
- 13. Làm thế nào để sử dụng SqlBulkCopyColumnMappingCollection?
- 14. Làm thế nào để sử dụng java.net.URI
- 15. Làm thế nào để sử dụng AutoMapper?
- 16. Làm thế nào để sử dụng Git?
- 17. Làm thế nào để sử dụng TDictionary?
- 18. Làm thế nào để sử dụng Ant?
- 19. Làm thế nào để sử dụng NSScanner?
- 20. Làm thế nào để sử dụng grails.plugin.location?
- 21. Làm thế nào để sử dụng bitmask?
- 22. Làm thế nào để sử dụng DataProtectionProvider?
- 23. Làm thế nào để sử dụng Deblector?
- 24. Làm thế nào để sử dụng cepstral?
- 25. Làm thế nào để sử dụng PyBrain?
- 26. Làm thế nào để sử dụng QMutex?
- 27. Làm thế nào để sử dụng pthread_mutex_trylock?
- 28. filedialog, tkinter và mở các tệp
- 29. Làm thế nào để làm cho SQLAlchemy sử dụng Memcached?
- 30. Làm thế nào để sử dụng fiddler để gỡ lỗi?
Xem thêm [ 'FileDialogTest'] (http://stackoverflow.com/questions/2914627/file-explorer-using-java-how-to-go-about-it/2914733#2914733). – trashgod