Hola,
Cita:
Iniciado por gustavopino ... estoy ejecutando un Jframe que tiene todo el formulario a registrar un producto y en la parte del proveedor (que es un JComboBox editable) si no existe el proveedor llamar al JDialog para que lo registre.
Una vez que ya introduje los datos (y aqui es adonde esta mi problema) es que agarre el valor del Proveedor que introduje en el JDialog y lo almacene en el JComboBox del JFrame padre. ...
Por ejemplo:
Un JDialog simple, lo único que tiene adentro es un TextField para poder ingresar un nombre; lo único que hace ese JDialog es desplegar un espacio vacío para que puedas ingresar un dato que vamos a pasar al JComboBox editable del JFrame padre:
Código Java:
Ver originalpublic class MyJDialog
extends javax.
swing.
JDialog {
public MyJDialog
(java.
awt.
Frame parent,
boolean modal
) { super(parent, modal);
initComponents();
}
private void initComponents() {
jTextField1.setText("Hello");
getContentPane
().
add(jTextField1, java.
awt.
BorderLayout.
CENTER); pack();
}
}
Como ya tenemos el JDialog ahora vamos a crear un JFrame con el JComboBox editable y en este caso, a forma de ejemplo, va a mostrar el JDialog y va a pasar el valor ingresado solamente cuando se presione la tecla Enter.
Es decir, cuando presiones la tecla Enter en el JComboBox entonces va a mostrar el JDialog, y al cerrar el JDialog entonces va a mostrar el valor que se ingresó en el espacio vacío del diálogo en el JComboBox del JFrame. (Para cerrarlo tendrás que usar la X del ícono de control de la ventana en este ejemplo.)
Código Java:
Ver original...
MyJDialog dialog = new MyJDialog(this, true);
dialog.setVisible(true);
jComboBox1.addItem(dialog.jTextField1.getText());
jComboBox1.setSelectedItem(dialog.jTextField1.getText());
...
Y el código del JFrame completo:
Código Java:
Ver originalpublic class MyJFrame
extends javax.
swing.
JFrame {
public MyJFrame() {
initComponents();
}
private void initComponents() {
jComboBox1.setEditable(true);
jComboBox1.
getEditor().
getEditorComponent().
addKeyListener(new java.
awt.
event.
KeyAdapter() { public void keyReleased
(java.
awt.
event.
KeyEvent evt
) { jComboBox1KeyReleased(evt);
}
});
getContentPane
().
add(jComboBox1, java.
awt.
BorderLayout.
CENTER); pack();
}
private void jComboBox1KeyReleased
(java.
awt.
event.
KeyEvent evt
) { if (evt.
getKeyChar() == java.
awt.
event.
KeyEvent.
VK_ENTER) { MyJDialog dialog = new MyJDialog(this, true);
dialog.setVisible(true);
jComboBox1.addItem(dialog.jTextField1.getText());
jComboBox1.setSelectedItem(dialog.jTextField1.getText());
}
}
public static void main
(String[] args
) { public void run() {
new MyJFrame().setVisible(true);
}
});
}
}
Ahora, prueba a crear el JDialog y el JFrame en un proyecto, y mira como pasé el valor del JDialog.JTextField al JFrame.JComboBox, y si tienes alguna duda específica consulta de nuevo, porque no sé que parte es la que no entendiste anteriormente.
Saludos,