gpt4 book ai didi

java - map 面板 : Java Swing Map API

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:50 24 4
gpt4 key购买 nike


我正在尝试在 Java Swing 应用程序中插入 map View ,以便用户可视化和编辑他记录的 .gpx 路线。
我在这看到thread人们推荐 MapPanel API,但是我找不到任何文档。我可以在我的应用程序中插入 map ,但是我需要更多文档来了解 API 功能。任何人都可以帮我解决这个问题吗?这是我目前所拥有的:

MapPanel mapPanel = new MapPanel();
mapPanel.setBounds(276, 77, 722, 632);
frame.add(mapPanel);

问题:
1) 我无法禁用显示在 map 前面的信息窗口

mapPanel.getOverlayPanel().setVisible(!mapPanel.getOverlayPanel().isVisible()); //disable the overlay info box
mapPanel.getControlPanel().setVisible(!mapPanel.getControlPanel().isVisible()); //disable the overlay control box

2)我可以在 map 上画路线吗?
3) 我可以在 map 上插入航点吗?

感谢您的帮助;)
菲利普

最佳答案

1) 查看他们发布的源代码,我会模仿他们在创建我的 MapPanel GUI 时所做的事情,就像这样

import java.awt.Dimension;
import javax.swing.*;
import com.roots.map.MapPanel.Gui;

public class TestMapPanel {
public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {
public void run() {
Gui mapPanel = new Gui();
mapPanel.setPreferredSize(new Dimension(722, 632));

JMenuBar menuBar = mapPanel.createMenuBar();


JFrame frame = new JFrame("Map Panel Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(mapPanel);
frame.setJMenuBar(menuBar);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}

然后用户可以通过简单地检查与信息面板对应的 JCheckBoxMenuItem 来选择是否要查看信息面板。

2) 和 3) 一切皆有可能,但您需要研究源代码以了解如何最好地完成这些和其他事情。

编辑,为了摆脱启动时的搜索面板,我求助于 kludge:

        frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);

SwingUtilities.invokeLater(new Runnable() {
public void run() {
for (int i = 0; i < menuBar.getMenuCount(); i++) {
JMenu menu = menuBar.getMenu(i);
if ("View".equals(menu.getText())) {
int componentCount = menu.getMenuComponentCount();
for (int j = 0; j < componentCount; j++) {
Component c = menu.getMenuComponent(j);
if (c instanceof JCheckBoxMenuItem) {
JCheckBoxMenuItem chkBoxMenuItem = (JCheckBoxMenuItem) c;
String text = chkBoxMenuItem.getText();
if ("Show SearchPanel".equals(text)) {
chkBoxMenuItem.doClick();
}
}
}
}
}
}
});

它不应该这么笨拙,如果我正确阅读和解释源代码,我认为源代码可能会更好。

关于java - map 面板 : Java Swing Map API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7368874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com