java jpanel隐藏_Java - 使用Netbeans隐藏/显示外部jPanel?

您可以使用 CardLayout ,也可以使用一些setVisible()调用 . 我'm not sure if you'询问如何设置框架,但你可以用BoxLayout做到这一点:

JFrame f = new JFrame();

JPanel wholePanel = new JPanel();

wholePanel.setLayout(new BoxLayout(wholePanel, BoxLayout.X_AXIS)); // panel with a vertical split, i.e. new panels get added as new "columns"

wholePanel.add(menuPanel);

JPanel potentialPanels = new JPanel(); // use this to act as a single panel on the right

potentialPanels.add(panel1); // it'll contain both panel1 and panel3, but only show one at a time

potentialPanels.add(panel3);

panel3.setVisible(false); // panel 3 invisible by default

showPanel1Button.addActionListener(new ActionListener(){ // activates upon selection

@Override

public void actionPerformed(ActionEvent e) {

panel1.setVisible(true); // show panel 1

panel3.setVisible(false); // /hide panel 3

}

});

showPanel3Button.addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent e) {

panel1.setVisible(false); // do the reverse: hide panel 1, show panel 3

panel3.setVisible(true);

}

});

另一种方法是使用CardLayout作为 potentialPanels 面板 .

根据您对上述帖子的评论,如果您担心有很多面板,那么您可以使用 ArrayList 来包含所有面板 . 然后,您可以将其中一个面板设置为可见,暂时将其从列表中删除,然后迭代列表的其余部分,将它们全部设置为"invisible",然后再将该可见面板添加到列表中 . 使用CardLayout会更有效率,你可以以相同的方式显示单个面板而其他面板是"hidden",但内置 show 功能,避免了 ArrayList 的混乱 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值