1 package jimm.datavision.gui; 2 import jimm.util.I18N; 3 import java.awt.BorderLayout ; 4 import java.awt.event.ActionListener ; 5 import java.awt.event.ActionEvent ; 6 import java.awt.event.WindowAdapter ; 7 import java.awt.event.WindowEvent ; 8 import javax.swing.*; 9 10 16 public class AskStringDialog extends JDialog implements ActionListener { 17 18 protected static final int TEXT_FIELD_COLUMNS = 24; 19 20 protected String string; 21 protected JTextField stringField; 22 23 30 public AskStringDialog(java.awt.Frame frame, String title, String label) { 31 this(frame, title, label, ""); 32 } 33 34 42 public AskStringDialog(java.awt.Frame frame, String title, String label, 43 String initialString) { 44 super((java.awt.Frame )null, title, true); buildWindow(title, label, initialString); 46 pack(); 47 setVisible(true); 48 } 49 50 55 public String getString() { return string; } 56 57 64 protected void buildWindow(String title, String labelString, 65 String initialString) 66 { 67 getContentPane().setLayout(new BorderLayout ()); 68 69 EditFieldLayout efl = new EditFieldLayout(); 70 stringField = 71 efl.addTextField(labelString, initialString, TEXT_FIELD_COLUMNS); 72 73 JPanel buttonPanel = new JPanel(); 75 JButton button; 76 77 buttonPanel.add(button = new JButton(I18N.get("GUI.ok"))); 78 button.addActionListener(this); 79 button.setDefaultCapable(true); 80 getRootPane().setDefaultButton(button); 81 82 buttonPanel.add(button = new JButton(I18N.get("GUI.cancel"))); 83 button.addActionListener(this); 84 85 getContentPane().add(efl.getPanel(), BorderLayout.CENTER); 86 getContentPane().add(buttonPanel, BorderLayout.SOUTH); 87 88 addWindowListener(new WindowAdapter () { 89 public void windowClosing(WindowEvent e) { 90 dispose(); 91 } 92 }); 93 94 new FocusSetter(stringField); 95 } 96 97 102 public void actionPerformed(ActionEvent e) { 103 String cmd = e.getActionCommand(); 104 if (I18N.get("GUI.ok").equals(cmd)) { 105 string = new String (stringField.getText()); 106 dispose(); 107 } 108 else if (I18N.get("GUI.cancel").equals(cmd)) { 109 dispose(); 110 } 111 } 112 113 } 114 | Popular Tags |