我是一个包含两个JTextField和一个JComboBox的GUI,基于JComboBox的内容,我将展示另一个包含一组组件的JPanel。
所以我继续如下(它有效)但我想知道我是否正确编码。
我创建了一个填充HashMap(String,JPanel)的类....字符串是我的JComboBox的内容
public class MapGui {
/**
* Create the panel.
*/
HashMap<String, JPanel> map;
public MapGui() {
map.put("1", new location());
map.put("2", new vente());
.......
}
每次我打电话给方法:
public JPanel getPanel(String s) {
return map.get(s);
}
和new location()以及new vente()和.....是从JPanel继承并包含所有组件的类。
提前谢谢
答案 0 :(得分:1)
不要为此目的使用地图。你所描述的是Card Layout的行为。基本上,您创建一个使用上述布局管理器的“Deck”面板,将所需的卡片(JPanel)(在您的情况下为 location 和 vente )添加到卡座面板,最后将甲板面板添加到框架中。
要隐藏和显示面板,只需使用监听器即可。我提供的链接显示完全您需要做什么来实现您的要求。