Agradezco la ayuda a:
http://stackoverflow.com/a/28461883
http://stackoverflow.com/a/4089370
En Netbeans, para poder crear una ventana modal para nuestra aplicación de Swing, se debe crear un nuevo JFrame Form, y en la línea donde se declara la clase:
public class JModalFrame extends javax.swing.JFrame
cambiarla por:
public class JModalFrame extends javax.swing.JDialog
y en el constructor se debe poner:
setModal(true);
Luego de añadir un área de texto, un checkbox y un botón a la ventana modal, el código para poder retornar valores desde esta ventana es:
Object[] thoseValues;
public Object[] showDialog()
{
return thoseValues;
}
public JModalFrame()
{
setModal(true);
thoseValues = new Object[2];
initComponents();
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
thoseValues[0] = jCheckBox1.isSelected();
thoseValues[1] = jTextArea1.getText();
setModal(false);
this.setVisible(false);
}
Para abrir la ventana modal, se debe añadir el siguiente código en la ventana principal (en mi caso, es la ventana que está declarada como la clase main en las propiedades del proyecto en Netbeans):
JModalFrame jMod = new JModalFrame();
jMod.setVisible(true);
Object[] thosevalues = jMod.showDialog();
jMod.dispose();
Se pueden recibir cualquier tipo de valores, yo he elegido un array de objetos.
Si se desea que la ventana modal aparezca en la barra de tareas se debe añadir el siugiente código en su constructor:
// http://stackoverflow.com/a/14261194
super(null, java.awt.Dialog.ModalityType.TOOLKIT_MODAL);
No hay comentarios:
Publicar un comentario