java显示面板_Java Swing – 如何在另一个面板的顶部显示面板?

我认为LayeredPane是你最好的赌注。你将需要一个第三个面板,虽然包含A和B.这第三个面板将是layeredPane,然后面板A和B仍然可以有一个不错的LayoutManager。所有你需要做的是中心B在A上,有很多例子在Swing线索如何做到这一点。

Tutorial for positioning without a LayoutManager。

public class Main {

private JFrame frame = new JFrame();

private JLayeredPane lpane = new JLayeredPane();

private JPanel panelBlue = new JPanel();

private JPanel panelGreen = new JPanel();

public Main()

{

frame.setPreferredSize(new Dimension(600, 400));

frame.setLayout(new BorderLayout());

frame.add(lpane, BorderLayout.CENTER);

lpane.setBounds(0, 0, 600, 400);

panelBlue.setBackground(Color.BLUE);

panelBlue.setBounds(0, 0, 600, 400);

panelBlue.setOpaque(true);

panelGreen.setBackground(Color.GREEN);

panelGreen.setBounds(200, 100, 100, 100);

panelGreen.setOpaque(true);

lpane.add(panelBlue, new Integer(0), 0);

lpane.add(panelGreen, new Integer(1), 0);

frame.pack();

frame.setVisible(true);

}

/**

* @param args the command line arguments

*/

public static void main(String[] args) {

new Main();

}

}

您可以使用setBounds将面板放置在分层窗格中,也可以设置它们的大小。

编辑以反映原始讯息的变更您将需要添加组件侦听器,以检测父容器何时调整大小,然后动态更改面板A和B的边界。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值