【发布时间】:2013-08-15 20:14:47
【问题描述】:
我有一个 JPanel 包含一堆小图标,还有一个 JLabel 包含一个更大的图标。
首先,我需要澄清一些事情。通过不设置panel.isOpaque,上述panel 将具有透明背景,并正确重叠我的JPanel 和JLabel 的图标。这是真的吗?
现在我的问题。我一直在关注 Oracle 网站上的 LayeredPanes 教程,但我似乎无法正确处理我的情况。
JFrame window = new JFrame();
ImageIcon underIcon;
URL urlUnder = myClass.class.getResource("images/underImage.gif");
underIcon = new ImageIcon(urlUnder);
JLabel labelUnder = new JLabel(underIcon);
ImageIcon panelIcon;
URL urlAbove = myClass.class.getResource("images/aboveImage.gif");
panelIcon = new ImageIcon(urlAbove);
JLabel aboveIcon1 = new JLabel(panelIcon);
JLabel aboveIcon2 = new JLabel(panelIcon);
JPanel panelAbove = new JPanel(new BorderLayout());
panelAbove.setOpaque(false);
panelAbove.add(aboveIcon1, BorderLayout.WEST);
panelAbove.add(aboveIcon2, BorderLayout.EAST);
JLayeredPane layeredPane = new JLayeredPane();
layeredPane.setLayout(new BorderLayout());
layeredPane.add(labelUnder, BorderLayout.CENTER, 1);
layeredPane.add(panelAbove, BorderLayout.CENTER, 2);
layeredPane.setOpaque(true);
window.setContentPane(layeredPane);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.pack();
window.setVisible(true);
我只看到面板的内容。而且我 100% 确定图片在 getResource 上,所以这不是问题。请就如何正确使用分层窗格提出建议。
【问题讨论】:
-
您使用的是 IDE,如果是,是哪一个?我最近遇到了类似的问题,也许可以提供帮助。
-
@JeremyJohnson:我正在使用 Netbeans 自动取款机。
-
您是否将“images”文件夹设置为源文件夹?
-
如果你想对这个问题投反对票,也请给 OP 一个解释。单靠反对票并不能阻止您不赞成的行为。
标签: java swing layout-manager jlayeredpane