Mega Code Archive

 
Categories / Java / Swing JFC
 

Creates two JPanels (opaque), one containing another opaque JPanel, and the other containing a non-opaque JPanel

import java.awt.Color; import java.awt.FlowLayout; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class OpaqueExample extends JFrame {   public OpaqueExample() {     super("Opaque JPanel Demo");     setSize(400, 200);     setDefaultCloseOperation(EXIT_ON_CLOSE);     JPanel opaque = createNested(true);     JPanel notOpaque = createNested(false);     // Throw it all together     getContentPane().setLayout(new FlowLayout());     getContentPane().add(opaque);     getContentPane().add(notOpaque);   }   public static void main(String[] args) {     OpaqueExample oe = new OpaqueExample();     oe.setVisible(true);   }   public JPanel createNested(boolean opaque) {     JPanel outer = new JPanel(new FlowLayout());     JPanel inner = new JPanel(new FlowLayout());     outer.setBackground(Color.white);     inner.setBackground(Color.black);     inner.setOpaque(opaque);     inner.setBorder(BorderFactory.createLineBorder(Color.gray));     inner.add(new JButton("Button"));     outer.add(inner);     return outer;   } }