对于我正在开发的应用程序,我利用UnfoldingMaps库显示地图。该地图放置在JPanel中。在同一JPanel中,显示了其他Jpanels。
因此,我借助按钮在地图和其他面板之间切换。
问题在于地图不会刷新。我可以显示一次,当我显示另一个面板时,返回到地图,该地图将不会显示。我唯一的选择就是重启应用程序。
private void showVis(String chart) {
//visual is the JPanel where elements are viewed in
visual.removeAll();
if (chart.equals("bar")) {
bar.setPart("", partial, location);
bar.createVisualisation(ai);
if (bar.checkGraph()) {
System.out.println("Really creating bar");
ChartPanel panB = bar.getPanel();
JPopupMenu popB = panB.getPopupMenu();
panB.setPopupMenu(popB);
visual.add(panB);
visual.validate();
}
} else if (chart.equals("map")) {
map = null;
map = new Maps();
map.setPart("", partial, location);
map.createVisualisation(ai);
if (map.checkGraph()) {
map.init();
visual.add(map);
visual.validate();
}
}
字符串图表决定将显示哪个面板。
最佳答案
在同一JPanel中,显示了其他Jpanels。所以我在
地图和其他面板借助按钮。
应该是parentPanel.revalidate();
然后是parentPanel.repaint();
更好的是为此目的指定CardLayout (So I change between themap and other panels with the help of buttons.)的用法,而不是先删除后再向已经可见的Swing GUI添加新的JComponent