多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
> 知识点:启用禁用BrowserView.setDragAndDropEnabled 从6.0版本开始,JxBrowser支持两种渲染模式:重量级(默认模式)和轻量级。重量级和轻量级渲染模式都支持拖放功能,但对于每种渲染模式,它的工作方式不同。 ## 轻量级渲染模式 在轻量级渲染模式下,使用Java Swing和JavaFX Drag&Drop API实现拖放功能。拖放支持有限。它仅支持以下功能: * 拖动已加载网页上的选定文本和链接,并将其拖放到其他应用程序中。 * 拖动已加载网页上的选定文本和链接,并将其放入同一网页上的文本字段或文本区域。 * 从其他应用程序拖动文本并将其放入加载的网页上的文本字段或文本区域。 ## 重量级渲染模式 在重量级渲染模式下,拖放功能由Chromium引擎实现。Chromium处理所有拖放操作,因此它与Google Chromium完全相同。 ## 禁用拖放 默认情况下,启用拖放功能。要禁用拖放,请使用 BrowserView.setDragAndDropEnabled(布尔启用) 方法或 jxbrowser.chromium.dnd.enabled = false 系统属性。 ### Swing JxBrowser 6.3及更高版本 ``` import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.swing.BrowserView; import javax.swing.*; import java.awt.*; /** * The sample demonstrates how to disable functionality that allows * dragging/dropping content from/onto the loaded web page. * <p/> * By default Drag&Drop is enabled. You can disable default behavior * using the "jxbrowser.chromium.dnd.enabled" System Property. For example: * System.setProperty("jxbrowser.chromium.dnd.enabled", "false"); */ public class DisableDragAndDropSample { public static void main(String[] args) { Browser browser = new Browser(); BrowserView view = new BrowserView(browser); // Disable Drag and Drop. view.setDragAndDropEnabled(false); JFrame frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.add(view, BorderLayout.CENTER); frame.setSize(800, 600); frame.setLocationRelativeTo(null); frame.setVisible(true); browser.loadURL("http://www.google.com"); } } ``` ### JavaFX JxBrowser 6.3及更高版本 ``` import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.BrowserCore; import com.teamdev.jxbrowser.chromium.BrowserType; import com.teamdev.jxbrowser.chromium.internal.Environment; import com.teamdev.jxbrowser.chromium.javafx.BrowserView; import com.teamdev.jxbrowser.chromium.javafx.internal.LightWeightWidget; import javafx.application.Application; import javafx.application.Platform; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; /** * The sample demonstrates how to disable functionality that allows dragging * links from the loaded web page. */ public class JavaFXDisableDnDSample extends Application { @Override public void init() throws Exception { // On Mac OS X Chromium engine must be initialized in non-UI thread. if (Environment.isMac()) { BrowserCore.initialize(); } } @Override public void start(final Stage primaryStage) { Browser browser = new Browser(BrowserType.LIGHTWEIGHT); final BrowserView view = new BrowserView(browser); Platform.runLater(new Runnable() { @Override public void run() { LightWeightWidget lightWeightWidget = (LightWeightWidget) view.getChildren().get(0); if (lightWeightWidget.isDragAndDropEnabled()) { // Now you cannot drag and drop links from the loaded web page. lightWeightWidget.setDragAndDropEnabled(false); } } }); Scene scene = new Scene(new BorderPane(view), 700, 500); primaryStage.setScene(scene); primaryStage.show(); browser.loadURL("http://www.google.com"); } public static void main(String[] args) { launch(args); } } ```