Foro sobre Java SE > PASAR DE FRAME A FRAME MEDIANTE UN BOTON
"... cómo pasar de un frame a otro mediante un botón..."
Creo que esa especificación necesita más detalles. Por ejemplo, dónde está ese botón: dentro de uno de esos frame o fuera.
En cualquier caso, se resuelve usando un listener para ese botón, que cambie el foco de los frame mediante sus métodos, heredados de Window, toFront() o toBack()
http://docs.oracle.com/javase/7/docs/api/java/awt/Window.html#toFront()
Podriamos empezar de la siguiente manera:
public class Frame1{
.........
evento_del boton() {
Frame2 frame2 = new Frame2();
frame2.setvisible(true);
}
..........
}
@hanconina
Sigue un test completo que implementa tu idea.
En cuanto lo ejecutes, verás que cada vez que se pulsa el botón, se crea un nuevo JFrame.
Por otra parte, fíjate en algunas diferencias, como por ejemplo, que el tipo "Frame2" que usas, no existe en Java, a menos que lo crees exprofeso, como una extensión de JFrame o de Frame.
De todos modos, esta solución no resuelve el problema planteado.
import javax.swing.JFrame;
public class FrameTest extends javax.swing.JFrame {
private static final long serialVersionUID = 1L;
public FrameTest() {
super();
initComponents();
}
@SuppressWarnings("unchecked")
private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
jButton1 = new javax.swing.JButton();
FormListener formListener = new FormListener();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new java.awt.GridBagLayout());
jButton1.setText("Botón"); // NOI18N
jButton1.addActionListener(formListener);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST;
gridBagConstraints.insets = new java.awt.Insets(138, 163, 139, 164);
getContentPane().add(jButton1, gridBagConstraints);
pack();
}
private class FormListener implements java.awt.event.ActionListener {
FormListener() {}
public void actionPerformed(java.awt.event.ActionEvent evt) {
if (evt.getSource() == jButton1) {
FrameTest.this.jButton1ActionPerformed(evt);
}
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFrame frame2 = new JFrame();
frame2.setVisible(true);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new FrameTest().setVisible(true);
}
});
}
private javax.swing.JButton jButton1;
}
diskulpa pero el grid para k es te comento soy nuevo en el leguaje por que ya logre pasar de un fram a otro kon lo siguiente:
botonvalidar = new JButton("Ingresar");
add(botonvalidar);
Manejadorbotonvalidar manejador = new Manejadorbotonvalidar();
botonvalidar.addActionListener(manejador);
}
//clase nterna para manejar eventos de boton
private class Manejadorbotonvalidar implements ActionListener{
//maneja evento de boton
public void actionPerformed(ActionEvent evento){
FramedeProducto InsertarProducto = new FramedeProducto();
InsertarProducto.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
InsertarProducto.setSize(500, 200);
InsertarProducto.setVisible(true);
}
}
pero ahora como le ago para que la ventana anterior JFrame1 se elimine y solo se vea JFrame2???
Hay dos maneras de "eliminar" un JFrame: que el usuario lo cierre usando el control de cierre del propio frame, o mediante el método dispose()
También puede hacerse visible o invisible mediante el método setVisible.
oye choces disculpa pero me puedes dar un ejemplo de como usar los metodos porfavor o decirme donde ay nformacion aserca de eyos??
te lo agradeceria mucho
Tutorial:
http://docs.oracle.com/javase/tutorial/uiswing/components/frame.html
API:
http://docs.oracle.com/javase/7/docs/api/javax/swing/JFrame.html
Holas.
Derepente lo que necesitas es cambiar de contenido al plsar un boton.
Si es asi, lo que necesitas es que dentro del actionPerformed de el boton hagas algo como :
jPanel3.removeAll();
jPanel3.add(jPanel1);
jPanel3.validate();
jPanel3.repaint();
donde jpanel3 es el panel donde se pondra dinamicamente el jpanel1
te dejo el .java que hice hace unos minutos :)
http://www.filedropper.com/panelesdinamicos
Ojala te sirva.
HOLA SOY NUEVO EN JAVA PERO TENGO ALGO DE CONOCIEMIENTOS DE PROGRAMACION POR LO CUAL LES PIDO SU AYUDA PARA SABER COMO PASAR DE UN FRAME A OTRO MEDIANTE UN BOTON YA QUE QUIERO DESARROLLAR UN SISTEMA DE INVENTARIO LES AGRADECERIA MUCHO SI ME DICEN COMO O DONDE PUEDO ENCONTRAR INFORMACION PRECISA DE ANTEMANO GRACIAS.