简体   繁体   English

传递对象以摆动GUI

[英]Passing an Object to swing GUI

I have 5-6 GUIs(seperate classes) one opens another according to their functionality, every GUI takes an object inside, I pass the final Object in a flight booking system like this to my GUI when a JButton "Book" is clicked from the seat selection menu in Book_GUI.java 我有5-6个GUI(单独的类),一个根据它们的功能打开另一个,每个GUI都带一个对象,当我从J单击“ JBook”后,将这样的航班预订系统中的最终对象传递给我的GUI。 Book_GUI.java中的座位选择菜单

Passenger_GUI frameP = new Passenger_GUI(eco.seats[x][z].getMyPassenger());
frameP.setVisible(true);    
eco.seats[x][z].setBooked(true);

in Passenger_GUI.java I have: 在Passenger_GUI.java中,我有:

        private Passenger passenger_GUI;

later in Constructor without initializing passenger_GUI I assign the input Passenger Object to it: 稍后在构造函数中,不初始化passenger_GUI我将输入的Passenger对象分配给它:

public Passenger_GUI(Passenger myPassenger) {
    passenger_GUI = myPassenger;

Everything works no errors... I have 2 questions, do I have to initialize first passenger_GUI and then make the assigment or is it not necessary? 一切正常,没有错误...我有2个问题,我必须先初始化passenger_GUI然后进行设置,还是没有必要? Second important question; 第二个重要问题; the changes I make in the Passenger_GU to object myPassenger( eco.seats[x][z].myPassenger ), will they be saved in the previous GUI Book_GUI.java I think not because the Passenger_GUI class does not have a return value... or am I wrong?How can I make the changes I apply on an Object stable and be used for the future in Book_GUI.java ?(previous GUI) Thank you for your time! 我在Passenger_GU中所做的更改以反对myPassenger( eco.seats[x][z].myPassenger ),这些eco.seats[x][z].myPassenger将保存在以前的GUI Book_GUI.java我认为不是,因为Passenger_GUI类没有返回值。 。还是我错了?如何使对Object所做的更改稳定并在Book_GUI.java用于将来?(以前的GUI)谢谢您的时间!

Here full classes: http://www.copypastecode.com/643018/ http://www.copypastecode.com/643022/ 这里是完整的课程: http : //www.copypastecode.com/643018/ http://www.copypastecode.com/643022/

  1. No, you can just initialize passenger_GUI in your constructor. 不,您可以只在构造函数中初始化passenger_GUI
  2. The changes should persist. 更改应保留。 Since you're passing an Object and not a primitive to your Passenger_GUI constructor, Java actually passes a reference to that Passenger object. 由于您要将一个Object而不是原语传递给Passenger_GUI构造函数,因此Java实际上会将对该Passenger对象的引用传递给它。 Your Passenger_GUI.passenger_GUI field should refer to the same object (and indeed, the same location in memory) as eco.seats[x][z].getMyPassenger() , so any changes made to that object from within Passenger_GUI should also be visible from Book_GUI . 您的Passenger_GUI.passenger_GUI字段应引用与eco.seats[x][z].getMyPassenger()相同的对象(实际上是内存中的相同位置eco.seats[x][z].getMyPassenger() ,因此,从Passenger_GUI内部对该对象所做的任何更改也应该可见从Book_GUI

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM