如何读取 JOptionPane.showMessageDialog

How to read from a JOptionPane.showMessageDialog

我正在尝试从鼠标获取位置 click.I 有以下代码:

import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class test {
public static void main(String[] args) {
    final Browser browser = new Browser();
    BrowserView view = new BrowserView(browser);

    final JTextField addressBar = new JTextField(
            "https://developer.here.com/api-explorer/maps-js/v3.0/infoBubbles/position-on-mouse-click");
    addressBar.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            browser.loadURL(addressBar.getText());
        }
    });

    JPanel addressPane = new JPanel(new BorderLayout());
    addressPane.add(new JLabel(" URL: "), BorderLayout.WEST);
    addressPane.add(addressBar, BorderLayout.CENTER);

    JFrame frame = new JFrame("Website");
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    frame.add(addressPane, BorderLayout.NORTH);
    frame.add(view, BorderLayout.CENTER);
    frame.setBounds(1, 1, 1300, 700);
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
    browser.loadURL(addressBar.getText());
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e1) {
            e1.printStackTrace();
        }
    }
    }

当我从网站上单击该地图时,我会收到一个带有坐标的消息框。

我的问题是如何获取这些坐标(数字)?

我从网站上得到了那个脚本,并使用它创建了一个 hmtl 文件,然后 javascript 对 get 进行了编码,以某种方式将坐标写入文本文件。

它没有用,之后我意识到根据互联网上的一些人的说法,不可能使用 javascript(存在安全风险)在文件中写入数据。

所以在它之后,javascript 选项现在是 down.And 我想知道是否有可能以某种方式从 messageBox 中获取这些信息... 我不得不提一下,我被迫只使用 javascript 和 Java 进行编码。 我正在使用 JxBrowser 在我的 Java 应用程序和用于 GUI 的 Swing 中显示网页。

Calculating a Location from a Mouse Click 是一个为您提供点击位置坐标的站点,该位置使用警报窗口发送(在 javascript 中)。当我在我的 Java 应用程序中打开此站点时,我没有收到警报窗口(因为我使用 Java 而不是浏览器打开它),我收到 JOptionPane.showMessageDialog.

所以我想要的是extract/get这个JOptionPane的坐标。

DialogHandler.onAlert() 方法在应显示 JavaScript 警报对话框时调用。它发生在 window.alert() JavaScript 函数被调用时。 那个是等效的,您可以通过覆盖 DialogHandler.onAlert()

来管理警报
browser.setDialogHandler(new DialogHandler() {
    @Override
    public void onAlert(DialogParams params) {
        String url = params.getURL();
        String title = "The page at " + url + " says:";
        String message = params.getMessage();
        JOptionPane.showMessageDialog(null, message, title, JOptionPane.PLAIN_MESSAGE);
    }

有关更多信息,请查看教程 javascript JXBrowser 对话框 here