<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                > 默認是不顯示右鍵菜單的,需要注冊Browser.setContextMenuHandler。如果是重量級模式下,需要設置一下 JPopupMenu.setDefaultLightWeightPopupEnabled(false);,否則顯示不 出來輕量級的上下文菜單 > 默認情況下,當用戶右鍵單擊加載的網頁時,JxBrowser不會顯示上下文菜單。不支持標準Chromium上下文菜單,因為它是Google Chromium應用程序的一部分。 要在用戶右鍵單擊加載的網頁時顯示上下文菜單,您必須注冊ContextMenuHandler實現。當用戶右鍵單擊網頁時,將調用ContextMenuHandler.showContextMenu(ContextMenuParams params)方法。此方法接收ContextMenuParams參數,該參數包含有關網頁上鼠標右鍵單擊位置的HTML元素的信息,鼠標指針的位置,鼠標指針下的HTML元素類型,鏈接URL,鏈接文本,圖像src屬性值等。使用此信息配置上下文菜單。 要注冊ContextMenuHandler的實現,請使用Browser.setContextMenuHandler(ContextMenuHandler contextMenuHandler)方法。 ### Swing ``` import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.ContextMenuHandler; import com.teamdev.jxbrowser.chromium.ContextMenuParams; import com.teamdev.jxbrowser.chromium.swing.BrowserView; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; /** * The sample demonstrates how to register custom ContextMenuHandler, * to handle mouse right clicks and display custom Swing context menu. */ public class ContextMenuSample { public static void main(String[] args) { JPopupMenu.setDefaultLightWeightPopupEnabled(false); Browser browser = new Browser(); 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.setContextMenuHandler(new MyContextMenuHandler(view)); browser.loadURL("http://www.google.com"); } private static class MyContextMenuHandler implements ContextMenuHandler { private final JComponent component; private MyContextMenuHandler(JComponent parentComponent) { this.component = parentComponent; } public void showContextMenu(final ContextMenuParams params) { final JPopupMenu popupMenu = new JPopupMenu(); if (!params.getLinkText().isEmpty()) { popupMenu.add(createMenuItem("Open link in new window", new Runnable() { public void run() { String linkURL = params.getLinkURL(); System.out.println("linkURL = " + linkURL); } })); } final Browser browser = params.getBrowser(); popupMenu.add(createMenuItem("Reload", new Runnable() { public void run() { browser.reload(); } })); final Point location = params.getLocation(); SwingUtilities.invokeLater(new Runnable() { public void run() { popupMenu.show(component, location.x, location.y); } }); } private static JMenuItem createMenuItem(String title, final Runnable action) { JMenuItem reloadMenuItem = new JMenuItem(title); reloadMenuItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { action.run(); } }); return reloadMenuItem; } } } ``` ### JavaFX ``` import com.teamdev.jxbrowser.chromium.Browser; import com.teamdev.jxbrowser.chromium.ContextMenuHandler; import com.teamdev.jxbrowser.chromium.ContextMenuParams; import com.teamdev.jxbrowser.chromium.javafx.BrowserView; import javafx.application.Application; import javafx.application.Platform; import javafx.event.*; import javafx.geometry.Point2D; import javafx.scene.Scene; import javafx.scene.control.ContextMenu; import javafx.scene.control.MenuItem; import javafx.scene.input.MouseEvent; import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import java.awt.*; /** * The sample demonstrates how to register custom ContextMenuHandler, * to handle mouse right clicks and display custom JavaFX context menu. */ public class JavaFXContextMenuSample extends Application { @Override public void start(Stage primaryStage) { Browser browser = new Browser(); BrowserView browserView = new BrowserView(browser); browser.setContextMenuHandler(new MyContextMenuHandler(browserView)); StackPane pane = new StackPane(); pane.getChildren().add(browserView); Scene scene = new Scene(pane, 700, 500); primaryStage.setScene(scene); primaryStage.show(); browser.loadURL("http://www.google.com"); } public static void main(String[] args) { launch(args); } private static class MyContextMenuHandler implements ContextMenuHandler { private final Pane pane; private MyContextMenuHandler(Pane paren) { this.pane = paren; } public void showContextMenu(final ContextMenuParams params) { Platform.runLater(new Runnable() { @Override public void run() { createAndDisplayContextMenu(params); } }); } private void createAndDisplayContextMenu(final ContextMenuParams params) { final ContextMenu contextMenu = new ContextMenu(); // Since context menu doesn't auto hide, listen mouse press events // on BrowserView and hide context menu on mouse press pane.getChildren().get(0).setOnMousePressed(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent event) { contextMenu.hide(); } }); // If there's link under mouse pointer, create and add // the "Open link in new window" menu item to our context menu if (!params.getLinkText().isEmpty()) { contextMenu.getItems().add(createMenuItem( "Open link in new window", new Runnable() { public void run() { String linkURL = params.getLinkURL(); System.out.println("linkURL = " + linkURL); } })); } // Create and add "Reload" menu item to our context menu contextMenu.getItems().add(createMenuItem("Reload", new Runnable() { public void run() { params.getBrowser().reload(); } })); // Display context menu at required location on screen Point location = params.getLocation(); Point2D screenLocation = pane.localToScreen(location.x, location.y); contextMenu.show(pane, screenLocation.getX(), screenLocation.getY()); } private static MenuItem createMenuItem(String title, final Runnable action) { MenuItem menuItem = new MenuItem(title); menuItem.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent event) { action.run(); } }); return menuItem; } } } ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看