我正在尝试为包含牌的牌创建一个gui。这些卡本身就是扩展JPanel的类的实例。
我需要创建一个最多可容纳7个卡片对象的gui,这些对象叠放在彼此的顶部,就像你一样
(忽略JFrames)。
是否可以通过Swing实现,如果可以,您可以指向一个合适的布局管理器吗?
答案 0 :(得分:2)
我认为在你的情况下你需要使用JLayeredPane。你可以在JLayeredPane
中添加任何No of JPanellayeredPane = new JLayeredPane();
layeredPane.setPreferredSize(new Dimension(300, 310));
layeredPane.setBorder(BorderFactory.createTitledBorder(
"jlayered example"));
layeredPane.addMouseMotionListener(new MouseMotionAdapter() {
});
for (int i = 0; i < ...number of panels...; i++) {
JPanel panel = new Panel("panel"+i);
layeredPane.add(panel, new Integer(i));
}
点击https://docs.oracle.com/javase/tutorial/uiswing/components/layeredpane.html查看如何使用JlayeredPane
如果您希望jpanels
重叠在一起,只需将布局设置为null layout
并在其中添加Jpanels
。
答案 1 :(得分:1)
如果是这样,你能指点我一个合适的布局管理员吗?
JDK没有这方面的布局管理器。
查看Overlap Layout,这是为此目的而设计的布局。
它的工作原理是控制添加到面板的每个组件的Z顺序,以允许放置在第三维中。