Java tutorial
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; } }