Отправка данных в JFrame из другого JFrame без открытия нового JFrame - PullRequest
0 голосов
/ 05 марта 2020

Я занимаюсь проектом системы бронирования автобусов на java качелях. Там у меня проблема с передачей данных от одного к другому.

Видите, у меня есть рамка, где я могу забронировать места. А нажав кнопку , выберите , данные будут сохранены в текстовом поле и отправлены в основной кадр в качестве выбранного места.

enter image description here

Основной кадр:

enter image description here

Но у меня возникает проблема, когда я нажимаю , выбираю , нажимаю кнопку старая рамка не открывается Это открывает новый кадр. Как я мог решить это. С открытием нового кадра.

Код выбора места для каркаса:

private void selectbuttonActionPerformed{
    String seats = seatstf.gettext();
    new Billing(seats).setVisible(true);
    this.dispose();
}

И основной код биллинга:

public Billing(String seats){
    initComponents();
    This.seatvar = seats;
    Seattf.setText(""+seatvar);
}

Где new Billing(seats).setVisible(true); открывает новую раму биллинга без открытия старый, где данные необходимы в текстовом поле.

Как это можно решить?

1 Ответ

0 голосов
/ 05 марта 2020

С помощью new Billing вы создаете экземпляр фрейма, который, конечно, открывает новый фрейм. Сохраните фрейм как переменную экземпляра и используйте его.

public class SeatFrame extends JFrame {
    private Billing parent;

    public SeatFrame(Billing parent) {
        this.parent = parent;
        // TODO init Frame (add Components etc.)
    }

    ...

    private void selectbuttonActionPerformed(){
        String seats = seatstf.gettext();
        parent.setSeats(seats);
        parent.setVisible(true);
        this.dispose();
    }

    ...

}

Класс биллинга должен выглядеть следующим образом:

...

public Billing(){
    initComponents();
}

public void setSeats(String seats){
    this.seatvar = seats;
    Seattf.setText(seatvar);
}

public void openSeatFrame(){
   new SeatFrame(this).setVisible(true);
   this.dispose();
}

....
...