Hola,
Cita:
Iniciado por josichu
... mi problema es que no se como hacer para llamar a cada rato al Frame2, y esperar que me entregue una respuesta, para volverlo a llamar.
Usa un JDialog en forma modal.
Código Java:
Ver originalJDialog1 jDialog1 = new JDialog1(this, true); // true == modal
jDialog1.setVisible(true);
Y para abrir el formulario muchas veces existen otros métodos mas eficientes de obtener información, por ejemplo usando un JTable:
Código Java:
Ver originalpackage application;
public class JDialog1
extends javax.
swing.
JDialog {
private javax.
swing.
JButton jButton1
; private javax.
swing.
JTable jTable1
;
public JDialog1
(java.
awt.
Frame parent,
boolean modal,
int quantity
) { super(parent, modal);
jTable1
= new javax.
swing.
JTable(); jButton1
= new javax.
swing.
JButton();
getContentPane
().
setLayout(new javax.
swing.
BoxLayout(getContentPane
(), javax.
swing.
BoxLayout.
PAGE_AXIS));
jScrollPane1.
setPreferredSize(new java.
awt.
Dimension(200,
200));
jScrollPane1.setViewportView(jTable1);
getContentPane().add(jScrollPane1);
jButton1.setText("Aceptar");
@Override
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) { jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1);
pack();
setLocationRelativeTo(parent);
}
private void jButton1ActionPerformed
(java.
awt.
event.
ActionEvent evt
) { setVisible(false);
}
return ((TableModel)jTable1.
getModel()).
getValues(); }
private int quantity = 0;
this.quantity = quantity;
this.
values = new String[quantity
]; }
@Override
public int getRowCount() {
return quantity;
}
@Override
public int getColumnCount() {
return 2;
}
@Override
public Object getValueAt
(int rowIndex,
int columnIndex
) { return columnIndex == 1 ? values[rowIndex] :
"Valor " + String.
valueOf(rowIndex
+ 1); }
@Override
public Class<?> getColumnClass(int columnIndex) {
}
@Override
public boolean isCellEditable(int rowIndex, int columnIndex) {
return columnIndex == 1;
}
@Override
public void setValueAt
(Object aValue,
int rowIndex,
int columnIndex
) { this.
values[rowIndex
] = String.
valueOf(aValue
); }
return values;
}
}
}
Y usando un Spinner para en número de filas:
Código Java:
Ver originalpackage application;
public class JFrame1
extends javax.
swing.
JFrame {
private javax.
swing.
JButton jButton1
; private javax.swing.JSpinner jSpinner1;
public JFrame1() {
jSpinner1 = new javax.swing.JSpinner();
jButton1
= new javax.
swing.
JButton();
jSpinner1.setValue(10);
getContentPane
().
setLayout(new javax.
swing.
BoxLayout(getContentPane
(), javax.
swing.
BoxLayout.
PAGE_AXIS)); getContentPane().add(jSpinner1);
jButton1.setText("Valores");
@Override
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) { jButton1ActionPerformed(evt);
}
});
getContentPane().add(jButton1);
pack();
setLocationRelativeTo(null);
}
private void jButton1ActionPerformed
(java.
awt.
event.
ActionEvent evt
) { JDialog1 jDialog1 = new JDialog1(this, true,
jDialog1.setVisible(true);
for (String valor
: jDialog1.
getValues()) }
}
Saludos,