如何从JOptionPane.showMessageDialog中读取

时间:2018-04-21 20:11:29

标签: javascript java swing geolocation jxbrowser

我试图通过鼠标点击获取位置。我有以下代码:

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代码。

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

所以在它之后,javascript选项已关闭。现在我想知道是否有可能以某种方式从messageBox获取这些信息... 我不得不提到我只能用javascript和Java编写代码。 我正在使用JxBrowser在我的Java应用程序和Swing for GUI中显示网页。

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

所以我想要的是从JOptionPane中提取/获取坐标。

1 个答案:

答案 0 :(得分:0)

当应显示JavaScript警告对话框时,将调用DialogHandler.onAlert()方法。它发生在调用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);
    }

有关JXBrowser here

的其他信息检查教程javascript对话框