Я использую JxBrowser 6.23.1 со следующим кодом
public AppWindow(){
setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
setSize(1200,800);
setLocationRelativeTo(null);
setVisible(true);
toFront();
mBrowser = new Browser();
BrowserView browserView = new BrowserView(mBrowser);
mBrowser.setContextMenuHandler(new MyContextMenuHandler(browserView));
mBrowser.loadURL("www.google.com");
add(browserView, BorderLayout.CENTER);
}
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.getPageURL().isEmpty()) {
popupMenu.add(createMenuItem("Copy Link", new Runnable() {
public void run() {
String linkURL = params.getPageURL();
StringSelection selection = new StringSelection(linkURL);
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
clipboard.setContents(selection, selection);
}
}));
popupMenu.add(createMenuItem("Open link in new window", new Runnable() {
public void run() {
String linkURL = params.getPageURL();
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;
}
}
Как мое приложение, контекстное меню, когда я щелкаю правой кнопкой мыши, отображается только на правом краю моего окна, как последние 200px от правого края. Если я щелкну где-нибудь в окне ближе к центру, оно ничего не показывает, хотя в моей отладке вызывается popupMenu.show(component, location.x, location.y);
.
Это ошибка в версии этого JxBrowser или что-то, что я пропустил?