extendí JDialog para crear un diálogo personalizado donde el usuario deberá rellenar algunos campos: dialog http://www.freeimagehosting.net/uploads/3d4c15ed9a.jpgRecuperar la entrada introducida en un JDialog
¿Cómo debo recuperar los datos introducidos?
Se me ocurrió una solución que funciona. Imita JOptionPane pero la forma en que hago se ve feo a mí, porque de los campos estáticos involucrados ... Aquí es más o menos mi código:
public class FObjectDialog extends JDialog implements ActionListener {
private static String name;
private static String text;
private JTextField fName;
private JTextArea fText;
private JButton bAdd;
private JButton bCancel;
private FObjectDialog(Frame parentFrame) {
super(parentFrame,"Add an object",true);
// build the whole dialog
buildNewObjectDialog();
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent ae) {
if(ae.getSource()==bAdd){
name=fName.getText();
text=fText.getText();
}
else {
name=null;
text=null;
}
setVisible(false);
dispose();
}
public static String[] showCreateDialog(Frame parentFrame){
new FObjectDialog(parentFrame);
String[] res={name,text};
if((name==null)||(text==null))
res=null;
return res;
}
}
Como ya he dicho, que funciona correctamente, pero supongo que eso podría plantear graves problemas de concurrencia ...
¿existe una forma más limpia de hacer eso? ¿Cómo se hace en JOptionPane?
¿Qué aspecto y sensación utilizas? –
@Martijn Courteaux: Nimbus (http://stackoverflow.com/questions/2616448/im-tired-of-jbuttons-how-can-i-make-a-nicer-gui-in-java) ;-) –