public void startDrop(PieceType pieceType, CatanColor pieceColor, boolean isCancelAllowed) { this.setOpaque(false); this.setLayout(new BorderLayout()); this.setBorder(BorderFactory.createLineBorder(Color.black, BORDER_WIDTH)); label = new JLabel(getLabelText(pieceType), JLabel.CENTER); label.setOpaque(true); label.setBackground(Color.white); Font labelFont = label.getFont(); labelFont = labelFont.deriveFont(labelFont.getStyle(), LABEL_TEXT_SIZE); label.setFont(labelFont); map = mainMap.copy(); map.setController(getController()); int prefWidth = (int) (mainMap.getScale() * mainMap.getPreferredSize().getWidth()); int prefHeight = (int) (mainMap.getScale() * mainMap.getPreferredSize().getHeight()); Dimension prefSize = new Dimension(prefWidth, prefHeight); map.setPreferredSize(prefSize); this.add(label, BorderLayout.NORTH); this.add(map, BorderLayout.CENTER); if (isCancelAllowed) { cancelButton = new JButton("Cancel"); Font buttonFont = cancelButton.getFont(); buttonFont = buttonFont.deriveFont(buttonFont.getStyle(), BUTTON_TEXT_SIZE); cancelButton.setFont(buttonFont); cancelButton.addActionListener(cancelButtonListener); this.add(cancelButton, BorderLayout.SOUTH); } map.startDrop(pieceType, pieceColor); }
public PlayerWaitingView() { this.setOpaque(true); this.setLayout(new BorderLayout()); this.setBorder(BorderFactory.createLineBorder(Color.black, BORDER_WIDTH)); // set the heading at the top of the pane label = new JLabel("Player Waiting View"); FontUtils.setFont(label, LABEL_TEXT_SIZE); this.add(label, BorderLayout.NORTH); // create the center panel that displays player info center = new JPanel(); center.setLayout(new BoxLayout(center, BoxLayout.Y_AXIS)); this.add(center, BorderLayout.CENTER); // create the AI panel for the bottom of the pane aiPanel = new JPanel(); aiPanel.setLayout(new BoxLayout(aiPanel, BoxLayout.Y_AXIS)); // create the AI type panel JPanel aiTypePanel = new JPanel(); aiTypePanel.setLayout(new BoxLayout(aiTypePanel, BoxLayout.X_AXIS)); aiTypePanel.add(Box.createHorizontalGlue()); JLabel aiTypeLabel = new JLabel("Select AI Type:"); FontUtils.setFont(aiTypeLabel, AI_TEXT_SIZE); aiTypePanel.add(aiTypeLabel); aiTypePanel.add(Box.createRigidArea(new Dimension(5, 0))); aiModel = new SpinnerListModel(); aiChoices = new JSpinner(aiModel); ((JSpinner.DefaultEditor) aiChoices.getEditor()).getTextField().setEditable(false); FontUtils.setFont(aiChoices, AI_TEXT_SIZE); aiTypePanel.add(aiChoices); aiTypePanel.add(Box.createHorizontalGlue()); aiPanel.add(aiTypePanel); aiPanel.add(Box.createRigidArea(new Dimension(0, 10))); // create the AI button panel JPanel aiButtonPanel = new JPanel(); aiButtonPanel.setLayout(new BoxLayout(aiButtonPanel, BoxLayout.X_AXIS)); aiButtonPanel.add(Box.createHorizontalGlue()); addAiButton = new JButton("Add a computer player"); addAiButton.addActionListener(actionListener); FontUtils.setFont(addAiButton, BUTTON_TEXT_SIZE); aiButtonPanel.add(addAiButton); aiButtonPanel.add(Box.createHorizontalGlue()); aiPanel.add(aiButtonPanel); aiPanel.add(Box.createRigidArea(new Dimension(0, 10))); // add the AI panel this.add(aiPanel, BorderLayout.SOUTH); }