package jeopardy; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.util.ArrayList; public class View { private Controller controller; private JFrame show; private JFrame host; private JPanel labelPanel; private JPanel questionPanel; public void createGameDialog(final GameDescription description) { final JPanel pmPanel = new JPanel(); final BoxLayout pmLayout = new BoxLayout(pmPanel, BoxLayout.LINE_AXIS); pmPanel.setLayout(pmLayout); final JPanel usersPanel = new JPanel(); final BoxLayout usersLayout = new BoxLayout(usersPanel, BoxLayout.PAGE_AXIS); usersPanel.setLayout(usersLayout); final JPanel nameAreaPanel = new JPanel(); final BoxLayout nameAreaLayout = new BoxLayout(nameAreaPanel, BoxLayout.PAGE_AXIS); nameAreaPanel.setLayout(nameAreaLayout); final ArrayList nameArea = new ArrayList(); JTextField firstName = new JTextField(); nameArea.add(new JTextField()); firstName.setMaximumSize(new Dimension(Short.MAX_VALUE, 1)); nameAreaPanel.add(Box.createGlue()); nameAreaPanel.add(firstName); nameAreaPanel.setMaximumSize(new Dimension(150, 1)); JLabel descriptionLabel = new JLabel("Bitte Spielernamen angeben!"); JButton plus = new JButton("+"); plus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { nameArea.add(new JTextField()); nameArea.get(nameArea.size()-1).setMaximumSize(new Dimension(Short.MAX_VALUE, 1)); nameAreaPanel.add(nameArea.get(nameArea.size()-1)); host.validate(); } }); JButton minus = new JButton("-"); minus.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { nameAreaPanel.remove(nameArea.get(nameArea.size()-1)); nameArea.remove(nameArea.size()-1); host.validate(); } }); JButton finish = new JButton("Ok"); pmPanel.add(plus); pmPanel.add(minus); descriptionLabel.setAlignmentX(Component.CENTER_ALIGNMENT); nameAreaPanel.setAlignmentX(Component.CENTER_ALIGNMENT); pmPanel.setAlignmentX(Component.CENTER_ALIGNMENT); finish.setAlignmentX(Component.CENTER_ALIGNMENT); usersPanel.add(descriptionLabel); usersPanel.add(nameAreaPanel); usersPanel.add(Box.createGlue()); usersPanel.add(pmPanel); usersPanel.add(finish); host.add(usersPanel); host.validate(); //---------------------- final JPanel pmPanel2 = new JPanel(); final BoxLayout pmLayout2 = new BoxLayout(pmPanel2, BoxLayout.LINE_AXIS); pmPanel2.setLayout(pmLayout2); final JPanel categoriesPanel = new JPanel(); final BoxLayout categoriesLayout = new BoxLayout(categoriesPanel, BoxLayout.PAGE_AXIS); categoriesPanel.setLayout(categoriesLayout); categoriesPanel.setSize(new Dimension(5, Short.MAX_VALUE)); final JPanel categoriesAreaPanel = new JPanel(); final BoxLayout categoriesAreaLayout = new BoxLayout(categoriesAreaPanel, BoxLayout.PAGE_AXIS); categoriesAreaPanel.setLayout(categoriesAreaLayout); categoriesAreaPanel.setMaximumSize(new Dimension(150, 1)); final ArrayList categoriesArea = new ArrayList(); Choice firstCategory = new Choice(); categoriesArea.add(firstCategory); firstCategory.setMaximumSize(new Dimension(Short.MAX_VALUE, 1)); categoriesAreaPanel.add(Box.createGlue()); categoriesAreaPanel.add(firstCategory); JLabel descriptionLabel2 = new JLabel("Bitte Kategorien auswählen!"); JButton plus2 = new JButton("+"); plus2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { categoriesArea.add(new Choice()); categoriesArea.get(categoriesArea.size()-1).setMaximumSize(new Dimension(Short.MAX_VALUE, 1)); categoriesAreaPanel.add(categoriesArea.get(categoriesArea.size()-1)); host.validate(); } }); JButton minus2 = new JButton("-"); minus2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { categoriesAreaPanel.remove(categoriesArea.get(nameArea.size()-1)); categoriesArea.remove(nameArea.size()-1); host.validate(); } }); JButton finish2 = new JButton("Ok"); descriptionLabel2.setAlignmentX(Component.CENTER_ALIGNMENT); categoriesAreaPanel.setAlignmentX(Component.CENTER_ALIGNMENT); pmPanel2.setAlignmentX(Component.CENTER_ALIGNMENT); finish2.setAlignmentX(Component.CENTER_ALIGNMENT); pmPanel2.add(plus2); pmPanel2.add(minus2); categoriesPanel.add(descriptionLabel2); categoriesPanel.add(categoriesAreaPanel); categoriesPanel.add(Box.createGlue()); categoriesPanel.add(pmPanel2); categoriesPanel.add(finish2); finish.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { for(JTextField bla : nameArea) { description.addUser(bla.getText()); } host.remove(usersPanel); host.add(categoriesPanel); host.validate(); } }); finish2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { for(Choice bla : categoriesArea) { description.addCategory(bla.getSelectedItem()); } host.remove(categoriesPanel); host.validate(); host.repaint(); } }); } //---------------------- public void showQuestion(String q) { show.removeAll(); questionPanel = new JPanel(); JLabel question = new JLabel(q); show.add(question); show.validate(); } public void showLabelPanel() { } public View(Controller c) { controller = c; show = new JFrame("Show"); show.setSize(800, 600); show.setVisible(true); host = new JFrame("Host"); host.setSize(800, 600); host.setVisible(true); labelPanel = new JPanel(); } }