Добрый день, код:
public static void main(String args[]){
Data data = new Data();
StartForm startForm = new StartForm(data);
Game game = new Game(data);
game.start();
}
public StartForm(Data data){
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);// posice okna centrum
JLabel nickLabel = new JLabel("nickname:");
nickLabel.setBounds(400/2 - 60/2,140,60, 40);
frame.add(nickLabel);
JTextField nickTField = new JTextField();
nickTField.setBounds(400/2 - 200/2,170,200, 20);
frame.add(nickTField);
JLabel roomLabel = new JLabel("room number:");
roomLabel.setBounds(400/2 - 90/2,180,90, 40);
frame.add(roomLabel);
JTextField roomTField = new JTextField();
roomTField.setBounds(400/2 - 200/2,210,200, 20);
frame.add(roomTField);
JButton startButton = new JButton("Start");
startButton.setBounds(400/2 - 100/2,400,100, 40);
frame.add(startButton);//adding button in JFrame
startButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
String nickname = nickTField.getText();
int roomNumber = Integer.parseInt(roomTField.getText());
data.setNickname(nickname);
data.setRoom(roomNumber);
frame.dispose();
}catch (Exception ex){
errorLabel.setText("Error: something is wrong");
errorLabel.setForeground(Color.RED);
}
}
});
frame.setSize(400,500);//400 width and 500 height
frame.setLayout(null);//using no layout managers
frame.setVisible(true);//making the frame visible
frame.setIconImage(icon.getImage());
frame.setResizable(false);
}
Проблема в том, что после создания экземпляра класса StartForm() код main идет дальше не дожидаясь закрытия формы, таким образом в класс Game передаётся пустой экземпляр data. Я не понимаю как правильно это решить