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; setupLookAndFeel(); 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(); } private void setupLookAndFeel() { try { UIDefaults.ProxyLazyValue font = new UIDefaults.ProxyLazyValue("javax.swing.plaf.FontUIResource", null, new Object[] {"Dialog", 0, 20}); UIManager.put("Button.font", font); UIManager.put("ToggleButton.font", font); UIManager.put("RadioButton.font", font); UIManager.put("CheckBox.font", font); UIManager.put("ColorChooser.font", font); UIManager.put("ComboBox.font", font); UIManager.put("Label.font", font); UIManager.put("List.font", font); UIManager.put("MenuBar.font", font); UIManager.put("MenuItem.font", font); UIManager.put("RadioButtonMenuItem.font", font); UIManager.put("CheckBoxMenuItem.font", font); UIManager.put("Menu.font", font); UIManager.put("PopupMenu.font", font); UIManager.put("OptionPane.font", font); UIManager.put("Panel.font", font); UIManager.put("ProgressBar.font", font); UIManager.put("ScrollPane.font", font); UIManager.put("Viewport.font", font); UIManager.put("TabbedPane.font", font); UIManager.put("Table.font", font); UIManager.put("TableHeader.font", font); UIManager.put("TextField.font", font); UIManager.put("PasswordField.font", font); UIManager.put("TextArea.font", font); UIManager.put("TextPane.font", font); UIManager.put("EditorPane.font", font); UIManager.put("TitledBorder.font", font); UIManager.put("ToolBar.font", font); UIManager.put("ToolTip.font", font); UIManager.put("Tree.font", font); UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel"); } catch(Exception e) { } } }