多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
使用JxBrowser DialogHandler API可以处理网页需要显示“文件打开”对话框时的情况(例如,当用户单击Web表单上的“文件输入”元素时)。使用此API,您可以显示自己的“文件打开”对话框或完全取消对话框并提供文件程序的路径。 注意:默认情况下,JxBrowser显示标准的Java Swing / JavaFX文件打开对话框。 以下示例演示如何使用Java Swing API显示“文件打开”对话框: ``` import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.CloseStatus; import com.teamdev.jxbrowser.chromium.FileChooserMode; import com.teamdev.jxbrowser.chromium.FileChooserParams; import com.teamdev.jxbrowser.chromium.swing.BrowserView; import com.teamdev.jxbrowser.chromium.swing.DefaultDialogHandler; import java.awt.BorderLayout; import java.io.File; import java.lang.reflect.InvocationTargetException; import java.util.concurrent.atomic.AtomicReference; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.SwingUtilities; import javax.swing.WindowConstants; /** * The sample demonstrates how to register your DialogHandler and * override the functionality that displays file chooser when * user uploads file using INPUT TYPE="file" HTML element on a web page. */ public class FileUploadSample { public static void main(String[] args) { Browser browser = new Browser(); final BrowserView view = new BrowserView(browser); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(view, BorderLayout.CENTER); frame.setSize(700, 500); frame.setLocationRelativeTo(null); frame.setVisible(true); browser.setDialogHandler(new DefaultDialogHandler(view) { @Override public CloseStatus onFileChooser(final FileChooserParams params) { final AtomicReference<CloseStatus> result = new AtomicReference<CloseStatus>( CloseStatus.CANCEL); try { SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { if (params.getMode() == FileChooserMode.Open) { JFileChooser fileChooser = new JFileChooser(); if (fileChooser.showOpenDialog(view) == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); params.setSelectedFiles(selectedFile.getAbsolutePath()); result.set(CloseStatus.OK); } } } }); } catch (InterruptedException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } return result.get(); } }); browser.loadURL("http://www.cs.tut.fi/~jkorpela/forms/file.html"); } } ``` 单击 选择文件 按钮以显示文件打开对话框,然后选择要上载的文件: