gpt4 book ai didi

java - 为什么添加新组件时 BorderLayout 会覆盖组件?

转载 作者:行者123 更新时间:2023-12-04 06:43:45 25 4
gpt4 key购买 nike

BorderLayout 做了一些奇怪的事情。如果我将两个面板添加到 Container使用相同的约束(例如 BorderLayout.CENTER),那么第一个就会消失,即使第二个被删除或变得不可见

似乎将每个元素“堆叠”在前一个元素之上似乎是有意义的。

这是正确的吗?如果是这样,是否有相关文档?

有没有其他人对此感到沮丧?你有解决方案,比如自定义LayoutManager ?

示例代码:

JFrame frame = new JFrame();
frame.setSize(500, 500);

JPanel panel1 = new JPanel();
panel1.setBackground(Color.blue);
frame.getContentPane().add(panel1);

JPanel panel2 = new JPanel();
panel2.setBackground(Color.red);
frame.getContentPane().add(panel2);

panel2.setVisible(false); // Seems like it should allow us to see panel1.

frame.setVisible(true);

这将创建并显示一个 500x500 的空白框。

最佳答案

BorderLayout根本不是为了做你想做的事。责任分离。如果你想要这种行为,你应该组合:结合 BorderLayoutCardLayout .尽管对于实际的堆栈行为,您必须自己编写代码(或找到已经拥有的人。)

关于java - 为什么添加新组件时 BorderLayout 会覆盖组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3946799/

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