Как читать из JOptionPane.showMessageDialog
Я пытаюсь получить местоположение от щелчка мыши. У меня есть следующий код:
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();
}
}
}
И когда я нажимаю на эту карту с веб-сайта, я получаю сообщение Box с координатами.
У меня вопрос как получить эти координаты (числа)?
Я получил этот сценарий с веб-сайта и создал файл hmtl, используя его и небольшой код JavaScript для получения, каким-то образом координаты, записав их в текстовый файл.
Это не сработало, и после этого я понял, что по некоторым данным из Интернета невозможно записывать данные в файлы с использованием javascript (что представляет угрозу безопасности).
Поэтому после этого опция javascript отключена. И теперь мне интересно, возможно ли каким-то образом получить эту информацию из messageBox... Я должен упомянуть, что я вынужден кодировать только с javascript и Java. А я пользуюсь JxBrowser
для отображения веб-страницы в моем приложении Java и Swing для графического интерфейса.
Вычисление местоположения с помощью щелчка мышью- это сайт, который предоставляет вам координаты местоположения по щелчку, местоположение отправляется с помощью окна предупреждения (в javascript). Когда я открываю этот сайт в своем приложении Java, я не получаю окно предупреждения (потому что я открываю его, используя Java, а не браузер), я получаю JOptionPane.showMessageDialog
,
Так что я хочу, чтобы извлечь / получить координаты из этого JOptionPane
,
1 ответ
Метод DialogHandler.onAlert() вызывается при отображении диалогового окна предупреждения JavaScript. Это происходит, когда вызывается функция JavaScript window.alert(). это эквивалент, которым вы можете управлять предупреждением, переопределив 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 здесь