Ver Mensaje Individual
  #7 (permalink)  
Antiguo 02/03/2011, 22:23
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Pasar datos entre Frames

Hola,

Cita:
Iniciado por josichu Ver Mensaje
... 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 original
  1. JDialog1 jDialog1 = new JDialog1(this, true); // true == modal
  2.         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 original
  1. package application;
  2.  
  3. public class JDialog1 extends javax.swing.JDialog {
  4.  
  5.     private javax.swing.JButton jButton1;
  6.     private javax.swing.JScrollPane jScrollPane1;
  7.     private javax.swing.JTable jTable1;
  8.  
  9.     public JDialog1(java.awt.Frame parent, boolean modal, int quantity) {
  10.         super(parent, modal);
  11.  
  12.         jScrollPane1 = new javax.swing.JScrollPane();
  13.         jTable1 = new javax.swing.JTable();
  14.         jButton1 = new javax.swing.JButton();
  15.  
  16.         setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);
  17.         getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.PAGE_AXIS));
  18.  
  19.         jScrollPane1.setPreferredSize(new java.awt.Dimension(200, 200));
  20.  
  21.         jTable1.setModel(new TableModel(quantity));
  22.         jScrollPane1.setViewportView(jTable1);
  23.  
  24.         getContentPane().add(jScrollPane1);
  25.  
  26.         jButton1.setText("Aceptar");
  27.         jButton1.addActionListener(new java.awt.event.ActionListener() {
  28.             @Override
  29.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  30.                 jButton1ActionPerformed(evt);
  31.             }
  32.         });
  33.         getContentPane().add(jButton1);
  34.  
  35.         pack();
  36.         setLocationRelativeTo(parent);
  37.     }
  38.  
  39.     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  40.         setVisible(false);
  41.     }
  42.  
  43.     public String[] getValues() {
  44.         return ((TableModel)jTable1.getModel()).getValues();
  45.     }
  46.  
  47.     private class TableModel extends javax.swing.table.AbstractTableModel {
  48.  
  49.         private int quantity = 0;
  50.         private String values[];
  51.  
  52.         public TableModel(int quantity) {
  53.             this.quantity = quantity;
  54.             this.values = new String[quantity];
  55.         }
  56.  
  57.         @Override
  58.         public int getRowCount() {
  59.             return quantity;
  60.         }
  61.  
  62.         @Override
  63.         public int getColumnCount() {
  64.             return 2;
  65.         }
  66.  
  67.         @Override
  68.         public Object getValueAt(int rowIndex, int columnIndex) {
  69.             return columnIndex == 1 ? values[rowIndex] :
  70.                 "Valor " + String.valueOf(rowIndex + 1);
  71.         }
  72.  
  73.         @Override
  74.         public Class<?> getColumnClass(int columnIndex) {
  75.             return String.class;
  76.         }
  77.  
  78.         @Override
  79.         public boolean isCellEditable(int rowIndex, int columnIndex) {
  80.             return columnIndex == 1;
  81.         }
  82.  
  83.         @Override
  84.         public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
  85.             this.values[rowIndex] = String.valueOf(aValue);
  86.         }
  87.  
  88.         public String[] getValues() {
  89.             return values;
  90.         }
  91.  
  92.     }
  93.  
  94. }

Y usando un Spinner para en número de filas:

Código Java:
Ver original
  1. package application;
  2.  
  3. public class JFrame1 extends javax.swing.JFrame {
  4.  
  5.     private javax.swing.JButton jButton1;
  6.     private javax.swing.JSpinner jSpinner1;
  7.  
  8.     public JFrame1() {
  9.         jSpinner1 = new javax.swing.JSpinner();
  10.         jButton1 = new javax.swing.JButton();
  11.  
  12.         jSpinner1.setValue(10);
  13.  
  14.         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
  15.         getContentPane().setLayout(new javax.swing.BoxLayout(getContentPane(), javax.swing.BoxLayout.PAGE_AXIS));
  16.         getContentPane().add(jSpinner1);
  17.  
  18.         jButton1.setText("Valores");
  19.         jButton1.addActionListener(new java.awt.event.ActionListener() {
  20.             @Override
  21.             public void actionPerformed(java.awt.event.ActionEvent evt) {
  22.                 jButton1ActionPerformed(evt);
  23.             }
  24.         });
  25.         getContentPane().add(jButton1);
  26.  
  27.         pack();
  28.         setLocationRelativeTo(null);
  29.     }
  30.  
  31.     private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  32.         JDialog1 jDialog1 = new JDialog1(this, true,
  33.                 Integer.parseInt(String.valueOf(jSpinner1.getValue())));
  34.         jDialog1.setVisible(true);
  35.         for (String valor : jDialog1.getValues())
  36.             System.out.println(valor);
  37.     }
  38.  
  39. }

Saludos,