我正在用Java實現一個簡單的應用程序。我正在使用應用程序的MVC模塊。問題是,當我的Controller
創建了View
和Model
的對象時,嘗試使用簡單的get方法時,我得到了默認值,而不是新插入的UI,下面是一個代碼〔實施例: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
課程中的所有獲得者都一樣。有沒有人知道爲什麼會發生這種情況?
考慮提供一個[可運行示例](https://stackoverflow.com/help/mcve),它演示了您的問題。這不是代碼轉儲,而是您正在做的事情的一個例子,它突出了您遇到的問題。這將導致更少的混淆和更好的響應 – MadProgrammer
您正在使用'Client(CurrencyParser,ActionListener)'構造函數實例化Client實例,但是您的代碼片段顯示了'Client(ActionListener)'構造函數。這可能是原因嗎? –
對不起,忘了刪除那段代碼。現在修復。 – user3134453