Przekazywanie między okienkami

0

OknoGlowne -> JFrame przycisk edycja
OknoEdycji -> Jdialog Formularz TextField

Jak przekazać z okna głównego po kliknięciu przycisku Edytuj do okna edycji srtinga.

0

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

0

ok to już działa dziękuję, a jeszcze tylko do zmiennej jak przekazać?

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1