public PlayDevCardView() {
    this.setOpaque(true);
    this.setBorder(BorderFactory.createLineBorder(Color.black, BORDER_WIDTH));

    this.setLayout(new BorderLayout());

    // Title Panel (immutable)
    JPanel titlePanel = new JPanel(new BorderLayout());
    title = new JLabel("Development Cards");
    FontUtils.setFont(title, LABEL_TEXT_SIZE);
    titlePanel.add(title, BorderLayout.WEST);
    this.add(titlePanel, BorderLayout.NORTH);

    JPanel mainPanel = new JPanel();
    mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));

    // Separator
    mainPanel.add(new JSeparator());

    // Blank space
    mainPanel.add(Box.createRigidArea(new Dimension(0, 10)));

    // Development Card Chooser
    devCards = new DevelopmentCardChooser();
    devCards.setListener(btnGrpPnlListener);
    mainPanel.add(devCards);

    // Blank space
    mainPanel.add(Box.createRigidArea(new Dimension(0, 10)));

    JPanel resPanel = new JPanel();
    resPanel.setLayout(new BoxLayout(resPanel, BoxLayout.Y_AXIS));

    // Resource Card 1
    resCard1 = new ResourceCardChooser();
    resCard1.setEnabled(false);
    resCard1.setListener(btnGrpPnlListener);
    mainPanel.add(resCard1);

    // Blank space
    mainPanel.add(Box.createRigidArea(new Dimension(0, 5)));

    // Resource Card 2
    resCard2 = new ResourceCardChooser();
    resCard2.setEnabled(false);
    resCard2.setListener(btnGrpPnlListener);
    resPanel.add(resCard2);

    mainPanel.add(resPanel);

    // Blank space
    mainPanel.add(Box.createRigidArea(new Dimension(0, 10)));

    // Use Dev Card Button
    JPanel usePanel = new JPanel();
    useButton = new JButton(DEFAULT_USE_BUTTON_LABEL);
    useButton.setEnabled(false);
    FontUtils.setFont(useButton, BUTTON_TEXT_SIZE);
    useButton.addActionListener(actionListener);
    usePanel.add(useButton);
    mainPanel.add(usePanel);

    // Blank space
    mainPanel.add(Box.createRigidArea(new Dimension(0, 10)));

    // Cancel Button
    JPanel cancelPanel = new JPanel();
    cancelButton = new JButton("Cancel");
    FontUtils.setFont(cancelButton, BUTTON_TEXT_SIZE);
    cancelButton.addActionListener(actionListener);
    cancelPanel.add(cancelButton);
    mainPanel.add(cancelPanel);

    this.add(mainPanel, BorderLayout.CENTER);
  }