Modificar des de una JFrame otro JFrame
Hola,
soy nuevo en java y estoy algo pertido. Tengo un JFrame1, con varios objetos, y desde este JFRame1 abro un JFrame 2, que debe modificar el contenido de un campo de texto del JFrame1. Como lo hago?
Cada JFrame lo implemento en una clase distinta (por tanto, en un fichero distinto).
Gracias
soy nuevo en java y estoy algo pertido. Tengo un JFrame1, con varios objetos, y desde este JFRame1 abro un JFrame 2, que debe modificar el contenido de un campo de texto del JFrame1. Como lo hago?
Cada JFrame lo implemento en una clase distinta (por tanto, en un fichero distinto).
Gracias
//Estas son los dos frames...
//Si estas llamando a cada frame de diferentes clases
// de alguna forma tenes que tener referencia de ambas clases en una sola si no no se puede...
import javax.swing.*;
import java.awt.event.*;
public class Frame2 extends JFrame implements ActionListener{
JTextField campo;
JButton boton;
Frame1 f;
public Frame2(Frame1 f){
this.f=f;
JPanel p = new JPanel();
campo = new JTextField(10);
boton = new JButton("Cambiar");
boton.addActionListener(this);
p.add(campo);
p.add(boton);
setContentPane(p);
}
public void actionPerformed(ActionEvent evt){
Object src = evt.getSource();
if(src==boton){
f.campo.setText(campo.getText());
campo.setText("");
}
}
}
//Segunda clase
import javax.swing.*;
import java.awt.event.*;
public class Frame1 extends JFrame implements ActionListener{
JTextField campo;
JButton boton;
public Frame1(){
JPanel panel = new JPanel();
campo = new JTextField(10);
boton = new JButton("Abrir Frame");
boton.addActionListener(this);
panel.add(campo);
panel.add(boton);
setContentPane(panel);
}
public void actionPerformed(ActionEvent evt){
Object src = evt.getSource();
if(src==boton){
Frame2 frame2 = new Frame2(this);
frame2.pack();
frame2.show();
}
}
public static void main(String args[]){
Frame1 frame1 = new Frame1();
frame1.pack();
frame1.show();
}
}
//Si estas llamando a cada frame de diferentes clases
// de alguna forma tenes que tener referencia de ambas clases en una sola si no no se puede...
import javax.swing.*;
import java.awt.event.*;
public class Frame2 extends JFrame implements ActionListener{
JTextField campo;
JButton boton;
Frame1 f;
public Frame2(Frame1 f){
this.f=f;
JPanel p = new JPanel();
campo = new JTextField(10);
boton = new JButton("Cambiar");
boton.addActionListener(this);
p.add(campo);
p.add(boton);
setContentPane(p);
}
public void actionPerformed(ActionEvent evt){
Object src = evt.getSource();
if(src==boton){
f.campo.setText(campo.getText());
campo.setText("");
}
}
}
//Segunda clase
import javax.swing.*;
import java.awt.event.*;
public class Frame1 extends JFrame implements ActionListener{
JTextField campo;
JButton boton;
public Frame1(){
JPanel panel = new JPanel();
campo = new JTextField(10);
boton = new JButton("Abrir Frame");
boton.addActionListener(this);
panel.add(campo);
panel.add(boton);
setContentPane(panel);
}
public void actionPerformed(ActionEvent evt){
Object src = evt.getSource();
if(src==boton){
Frame2 frame2 = new Frame2(this);
frame2.pack();
frame2.show();
}
}
public static void main(String args[]){
Frame1 frame1 = new Frame1();
frame1.pack();
frame1.show();
}
}