package com.pixelmaid.dresscode.app; import javax.naming.NameParser; import javax.swing.JDialog; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.GridLayout; import java.awt.event.ActionListener; import javax.swing.ButtonGroup; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JButton; import javax.swing.JRadioButton; import javax.swing.JTextField; import com.pixelmaid.dresscode.data.Stamp; import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.LinkedHashMap; public class PolyDialog extends JDialog implements ActionListener{ /** * */ private static final long serialVersionUID = 1L; private JPanel myPanel = null; private JButton okButton = null; private JButton cancelButton = null; private int defaultSides = 0; private boolean answer = false; private JTextField sideNumber; public boolean getAnswer() { return answer; } public PolyDialog(JFrame frame, boolean modal, int dS) { super(frame, modal); this.setResizable(false); defaultSides = dS; this.setPreferredSize(new Dimension(200,100)); this.setTitle("Polygon Settings"); myPanel = new JPanel(); getContentPane().add(myPanel); myPanel.setLayout(new BorderLayout()); //myPanel.add(new JLabel(message), BorderLayout.NORTH); okButton = new JButton("Ok"); okButton.addActionListener(this); cancelButton = new JButton("Cancel"); cancelButton.addActionListener(this); JPanel buttonPanel = new JPanel(); //use FlowLayout buttonPanel.add(okButton); buttonPanel.add(cancelButton); myPanel.add(buttonPanel,BorderLayout.PAGE_END); JPanel entryPanel = new JPanel(); entryPanel.setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy = 0; entryPanel.add(new JLabel("number of sides"), c); c.gridx = 1; c.gridy = 0; sideNumber = new JTextField(String.valueOf(defaultSides)); entryPanel.add(sideNumber,c); sideNumber.setPreferredSize(new Dimension(50,25)); c.gridx = 1; c.gridy = 1; myPanel.add(entryPanel,BorderLayout.CENTER); pack(); setLocationRelativeTo(frame); setVisible(true); } public void actionPerformed(ActionEvent e) { if(okButton == e.getSource()) { System.err.println("User chose yes."); String sideNum = sideNumber.getText(); int sides = defaultSides; try{ sides = Integer.parseInt(sideNum); } catch(NumberFormatException n){ PolyDialog.infoBox("Please enter a valid integer.", ""); sideNumber.setText(String.valueOf(defaultSides)); } if(sides<3 || sides>300){ PolyDialog.infoBox("Please enter a number between 3 and 300.", ""); sideNumber.setText(String.valueOf(defaultSides)); } else{ answer = true; defaultSides = sides; setVisible(false); } } else if(cancelButton == e.getSource()) { System.err.println("User chose no."); answer = false; setVisible(false); } } public int getSides(){ return defaultSides; } public static void infoBox(String infoMessage, String location) { JOptionPane.showMessageDialog(null, infoMessage, "Error in stamp name" + location, JOptionPane.ERROR_MESSAGE); } }