11/03/2013, 09:27
|
| | Fecha de Ingreso: julio-2010 Ubicación: Peru
Mensajes: 4
Antigüedad: 14 años, 6 meses Puntos: 0 | |
Respuesta: Como modificar componentes de un JFrame desde otro?? tomando un poco de teoria del concepto de chuidiang mas lo planteado lo hice asi
en el primer formulario iria algo asi
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*
* @author root
*/
public class framea extends JFrame{
private JButton a,b;
metodos metodos;
public framea(){
super("Formulario 1");
JPanel panel=new JPanel();
metodos=new metodos();
a=new JButton("llamar Formulario 2");
a.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
new frameb(new JButton("boton"));
}
});
//valor=objetos{imagenes,textos,dimensiones,etc}
b=new JButton("cambiar valor de boton de Formulario 2");
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
metodos.b();
}});
panel.add(a);
panel.add(b);
getContentPane().add(panel);
setDefaultCloseOperation(EXIT_ON_CLOSE);
//getContentPane().add(a);
//getContentPane(this);
setVisible(true);
setSize(400, 200);
}
public static void main(String[] arg){
new framea();
}
}
en el segundo formulario seria como lo siguiente
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
/**
*
* @author root
*/
public class frameb extends JFrame{
metodos metodos;
static JButton b;
public frameb(){
}
public frameb(JButton aux){
super("Formulario 2");
metodos=new metodos();
JPanel panel=new JPanel();
b=aux;
//valor={objetos,textos,clases,etc}
b.setText("aki va valor original");
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
metodos.a();
}
});
panel.add(b);
getContentPane().add(panel);
setSize(400, 300);
setVisible(true);
}
}
luego en la clase este codigo
import javax.swing.Icon;
import javax.swing.JButton;
/**
*
* @author root
*/
public class metodos {
frameb frameb=new frameb();
public metodos(){
}
public void a(){
}
public void b(){
frameb.b.setText("CAMBIADO EN METODO DESDE UNA CLASE");
// aux.setText("evento ejecutado desde framea");
}
}
Suerte |