OknoGlowne -> JFrame przycisk edycja
OknoEdycji -> Jdialog Formularz TextField
Jak przekazać z okna głównego po kliknięciu przycisku Edytuj do okna edycji srtinga.
OknoGlowne -> JFrame przycisk edycja
OknoEdycji -> Jdialog Formularz TextField
Jak przekazać z okna głównego po kliknięciu przycisku Edytuj do okna edycji srtinga.
tak na szybko :
JButton b2 = new JButton("klik");
robisz obsługę kliknięcia :
class Klikanie implements ActionListener {
public void actionPerformed(ActionEvent e) {
oknoDialogowe.field.setText("twój string");
}
}
dodajesz wszystko miejscu gdzie tworzysz komponenty GUI
oknoDialogowe to test obiekt klasy w której tworzysz okno dialogowe
field to jest JTextField utworzony w twoim oknie dialogowym
ok to już działa dziękuję, a jeszcze tylko do zmiennej jak przekazać?
Jeżeli w oknie edycji, edytujesz jakiś obiekt to przekaż referencje do tego obiektu w konstruktorze:
np
public class OknoGlowne extends JFrame {
private void buttonEditActionPerformed(ActionEvent e) {
OknoEdycji edycja = new OknoEdycji(osoba);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
edycja.setVisible(true);
}});
}
}
....
}
Jeżeli np edytujesz pole typu String, np imie. To mogę zakładać, że masz coś takiego jak klasa Osoba:
public class Osoba {
private String imie;
private String nazwisko;
...
}
I teraz w sytuacji gdy chcesz odświeżyć formularz w OknieGlownym po edycji imienia.
To do klasy osoba dodaj obsługę PropertyChangeSupport.
public class Osoba {
private PropertyChangeSupport support = new PropertyChangeSupport();
...
public void addPropertyChangeListener(PropertyChangeListener listener) {
support.addPropertyChangeListener(listener);
}
...
public void setImie(String imie) {
String oldImie = this.imie;
this.imie = imie;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
support .firePropertyChange("imie", oldImie, imie);
}
});
}
...
Wówczas w OknieGłowny implementujesz interfejs PropertyChangeListener i dodaje nasłuchiwanie do wyświetlanego obiektu. W przypadku zmiany property odświeżasz pola formularza.