Witam mam okienko Rodzic po kliknieciu na button otwiera sie drugie okienko i chce by tam po klikneciu (w drugim okienku) zmieniała się wartość w pierwszym(Rodzic).
Możesz ktoś naprowadzić ?
Witam mam okienko Rodzic po kliknieciu na button otwiera sie drugie okienko i chce by tam po klikneciu (w drugim okienku) zmieniała się wartość w pierwszym(Rodzic).
Możesz ktoś naprowadzić ?
podaj referencję rodzica drugiemu oknu + odpowiednia metoda
Tzn ?
W oknie rodzic przesyłam tak:
NoweOkno sk = new NoweOkno(this);
A w druim okienku jak wlasnie to odebrac ?
możesz na przykład tak
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class MainFrame extends JFrame {
private JTextField textField;
public MainFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel panel = new JPanel(new BorderLayout());
JButton button = new JButton("Dziecko");
button.addActionListener(new ShowChild());
panel.add(button, BorderLayout.SOUTH);
textField = new JTextField(10);
panel.add(textField, BorderLayout.NORTH);
setContentPane(panel);
pack();
}
public void setValue(String name, Object value) {
if (name.equals("AAA")) {
textField.setText(value.toString());
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new MainFrame().setVisible(true);
}
});
}
private class ShowChild implements ActionListener {
public void actionPerformed(ActionEvent e) {
new ChildFrame(MainFrame.this).setVisible(true);
}
}
}
class ChildFrame extends JDialog {
private MainFrame rodzic;
public ChildFrame(MainFrame rodzic) {
super(rodzic, true);
setLocationRelativeTo(rodzic);
this.rodzic = rodzic;
JPanel panel = new JPanel(new BorderLayout());
final JTextField textField = new JTextField(10);
panel.add(textField, BorderLayout.CENTER);
JButton button = new JButton("AAA");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChildFrame.this.rodzic.setValue("AAA", textField.getText());
setVisible(false);
}
});
panel.add(button, BorderLayout.WEST);
button = new JButton("BBB");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ChildFrame.this.rodzic.setValue("BBB", textField.getText());
setVisible(false);
}
});
panel.add(button, BorderLayout.EAST);
setContentPane(panel);
pack();
}
}