gpt4 book ai didi

java - Swing 是否支持 Windows 7 风格的文件选择器?

转载 作者:太空宇宙 更新时间:2023-11-04 14:24:55 26 4
gpt4 key购买 nike

我刚刚在我正在编写的小型桌面应用程序中添加了一个标准的“打开文件”对话框,基于 JFileChooser entry of the Swing Tutorial 。它生成一个如下所示的窗口:

screenshot of unwanted/XP-style window

但我更希望有一个如下所示的窗口:

screenshot of desired/7-style window

换句话说,我希望我的文件选择器具有 Windows Vista/Windows 7 的风格,而不是 Windows XP 的风格。这在 Swing 中可能吗?如果是这样,是如何做到的? (出于本问题的目的,假设代码将专门在 Windows 7 计算机上运行。)

最佳答案

Java 6 中的 Swing 似乎不支持此功能。

目前,我能找到打开此对话框的最简单方法是通过 SWT,而不是 Swing。 SWT 的 FileDialog ( javadoc ) 打开此对话框。以下是SWT的FileDialog snippet的修改使用打开而不是保存对话框。我知道这并不完全是您正在寻找的,但您可以将其隔离到实用程序类并将 swt.jar 添加到您的类路径中以实现此功能。

import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;

public class SWTFileOpenSnippet {
public static void main (String [] args) {
Display display = new Display ();
Shell shell = new Shell (display);
// Don't show the shell.
//shell.open ();
FileDialog dialog = new FileDialog (shell, SWT.OPEN | SWT.MULTI);
String [] filterNames = new String [] {"All Files (*)"};
String [] filterExtensions = new String [] {"*"};
String filterPath = "c:\\";
dialog.setFilterNames (filterNames);
dialog.setFilterExtensions (filterExtensions);
dialog.setFilterPath (filterPath);
dialog.open();
System.out.println ("Selected files: ");
String[] selectedFileNames = dialog.getFileNames();
for(String fileName : selectedFileNames) {
System.out.println(" " + fileName);
}
shell.close();
while (!shell.isDisposed ()) {
if (!display.readAndDispatch ()) display.sleep ();
}
display.dispose ();
}
}

关于java - Swing 是否支持 Windows 7 风格的文件选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26788304/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com