Я реализую простое приложение на Java. Я использую модуль MVC для приложения. Проблема в том, что когда мой Controller
создает объекты View
и Model
при попытке использовать простой метод get, я получаю значения по умолчанию, а не новые, которые я вставлял в пользовательский интерфейс. Вот код exmaple:Значения по умолчанию для ActionListener get
Вид:
public class Client extends JFrame {
private float ammount;
private JButton calculateButton;
...
public void startUI(ActionListener listener) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Client frame = new Client(listener);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
...
public Client(ActionListener listener) {
...
ammount = 10;
...
calculateButton = new JButton("Calculate");
calculateButton.addActionListener(listener);
add(calculateButton);
...
public float getAmmount() {
return (float) this.ammount;
}
Контроллер:
public class Controller implements ActionListener {
private float result;
private Server server = new Server();
private Client client = new Client(this);
public Controller() {
server.rateParser();
client.startUI(this);
}
public void actionPerformed(ActionEvent e) {
result = client.getAmmount();
}
}
Главная:
public class Program {
// Main function
public static void main(String[] args) {
Controller controller = new Controller();
}
}
До сих пор так хорошо, однако, когда я нажимаю на кнопку и триггеры события события, метод getAmmount
возвращает -1, что является значением по умолчанию стоимость. То же самое касается всех геттеров в классе Client
. Кто-нибудь знает, почему это происходит?
Рассмотрите возможность использования [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это не дамп кода, а пример того, что вы делаете, что подчеркивает проблему, с которой вы сталкиваетесь. Это приведет к меньшему путанице и лучшим ответам. – MadProgrammer
Вы создаете экземпляр клиента с помощью конструктора 'Client (CurrencyParser, ActionListener)', но ваш фрагмент кода показывает конструктор 'Client (ActionListener)'. Может ли это быть причиной? –
Извините, забыли удалить этот фрагмент кода. Исправлено. – user3134453