Swing JFC Java

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