Witam!
Mam sobie klasę NewGame, w ktoręj po nacisnięciu przycisku ustawiam nazwę firmy w klasie CompanyStats, interesujący nas fragment klasy NewGame wygląda tak:
JButton btnStart = new JButton("Zacznij gr\u0119");
btnStart.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
GameScreen gameScreen = new GameScreen();
companyStats.setCompanyName(textNazwaFirmy.getText().trim());
System.out.println(companyStats.getCompanyName());
dispose();
}
});
print drukuje nam w konsoli wartość prawidłową (czyli odebraną z obiektu textNazwaFirmy).
Natomiast, problem pojawia sie w klasie GameScreen (do ktorej przechodzimy z NewGame) poniewaz nasza zmienna z CompanyStats "wróciła" do wartości domyślnej, tj "NIE PODANO NAZWY"
Kod klasy GameScreen:
public class GameScreen extends NoweOkno {
public GameScreen() {
CompanyStats companyStats = new CompanyStats();
JLabel lblNewLabel = new JLabel(companyStats.getCompanyName());
getContentPane().add(lblNewLabel, BorderLayout.NORTH);
}
}
No i oczywiście klasa CompanyStats:
public class CompanyStats
{
private static final String NIE_PODANO_NAZWY = "NIE PODANO NAZWY";
private static final int NIE_PODANO_GOTOWKI = 0;
private String companyName;
private int companyMoney;
public CompanyStats()
{
companyName=NIE_PODANO_NAZWY;
companyMoney=NIE_PODANO_GOTOWKI;
}
public void setCompanyName(String name)
{
companyName = name;
}
public String getCompanyName()
{
return(companyName);
}
public void setCompanyMoney(int money)
{
companyMoney = money;
}
public int getCompanyMoney()
{
return companyMoney;
}
}
Czy konieczne jest zapisywanie niektórych zmiennych do pliku, w celu nie utracenia ich w trakcie dzialania aplikacji?
Czy może popełniam błąd w klasie GameScreen poprzez nieodpowiednie zainicjowanie obiektu companyStats (tj. zresetowanie zmiennych)?