import javax.swing.JOptionPane; import javax.swing.JDialog; import javax.swing.JTextField; import java.beans.*; import java.awt.*; import java.awt.event.*; /** * Clase DialogoModificar * Clase que muestra el dialogo con el usuario que le permite modificar el * parametro escogido del objeto seleccionado para modificar. * @author Patricio A. Castillo Pizarro - Eric C. Maldonado Olguin * @version 1.0 - Jun 26th, 2007 */ class DialogoModificar extends JDialog implements ActionListener, PropertyChangeListener { private String typedText = null; private JTextField textField; private Dialogo dd; private String magicWord; private JOptionPane optionPane; private String btnString1 = "Enter"; private String btnString2 = "Cancel"; public String getValidatedText() { return typedText; } public DialogoModificar(Frame aFrame, String aWord, Dialogo parent) { super(aFrame, true); dd = parent; magicWord = aWord.toUpperCase(); setTitle("nada aun"); textField = new JTextField(10); String msgString1 = "nada"; String msgString2 = "nada"; Object[] array = {msgString1, msgString2, textField}; Object[] options = {btnString1, btnString2}; optionPane = new JOptionPane(array, JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION, null, options, options[0]); setContentPane(optionPane); setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent we) { optionPane.setValue(new Integer( JOptionPane.CLOSED_OPTION)); } }); addComponentListener(new ComponentAdapter() { public void componentShown(ComponentEvent ce) { textField.requestFocusInWindow(); } }); textField.addActionListener(this); optionPane.addPropertyChangeListener(this); } public void actionPerformed(ActionEvent e) { optionPane.setValue(btnString1); } public void propertyChange(PropertyChangeEvent e) { String prop = e.getPropertyName(); if (isVisible() && (e.getSource() == optionPane) && (JOptionPane.VALUE_PROPERTY.equals(prop) || JOptionPane.INPUT_VALUE_PROPERTY.equals(prop))) { Object value = optionPane.getValue(); if (value == JOptionPane.UNINITIALIZED_VALUE) { return; } optionPane.setValue( JOptionPane.UNINITIALIZED_VALUE); if (btnString1.equals(value)) { typedText = textField.getText(); String ucText = typedText.toUpperCase(); if (magicWord.equals(ucText)) { clearAndHide(); } else { textField.selectAll(); JOptionPane.showMessageDialog( DialogoModificar.this, "nada", "nada", JOptionPane.ERROR_MESSAGE); typedText = null; textField.requestFocusInWindow(); } } else { dd.setLabel("nada."); typedText = null; clearAndHide(); } } } public void clearAndHide() { textField.setText(null); setVisible(false); } }