如何在AWT容器顶部创建Swing覆盖图(JPanel)?

时间:2018-12-22 22:34:58

标签: java swing awt overlay

我想在AWT Applet上创建一个Swing叠加层。

AWT小程序是外部的,因此我无法更新它以使用Swing组件。我尝试使用# Unit: milliseconds # expr min lq mean median uq max neval # data.table 1.005018 1.053370 1.137456 1.112871 1.186228 1.690996 100 # wimpel 1.061052 1.079128 1.218183 1.105037 1.137272 7.390613 100 # wimpel.index 1.043881 1.064818 1.131675 1.085304 1.108502 4.192995 100 JPanel作为JFrame中的内容窗格,并向其添加叠加的JPanel和AWT容器(按此顺序)。

OverlayLayout

我希望看到黑色背景,因为覆盖层是透明的,但它是灰色的(默认)。将public static void main(String[] args) { SwingUtilities.invokeLater(() -> createAndShowGui()); } private void createAndShowGui() { JFrame window = new JFrame("My Window"); window.setDefaultCloseOperation(EXIT_ON_CLOSE); JPanel content = new JPanel(); content.setLayout(new OverlayLayout(content)); JPanel overlayLayer = new JPanel(); overlayLayer.setLayout(null); overlayLayer.setOpaque(false); Container applet = new Container(); applet.setBackground(Color.BLACK); applet.setPreferredSize(800, 600); content.add(overlayLayer); content.add(applet); window.setContentPane(content); window.pack(); window.setVisible(true); } 更改为Container会导致黑色背景。

编辑: 即使将容器直接添加为内容窗格,容器似乎也不会显示背景颜色,但是使用面板却可以。不过,在其顶部添加JPanel不会导致黑色背景。

0 个答案:

没有答案