我已經創建了一個自定義的TextField(通過擴展javafx.scene.control.TextField),我使用它來存儲貨幣值,例如$ 120,000。我叫這個類CurrencyField
和它有兩個構造函數public CurrencyField()
和public CurrencyField(String currency)
我也有一個public void setCurrency(String currency)
設置貨幣符號的方法。人們可以通過使用new CurrencyField(currency)
出正確地設置貨幣或更高版本使用的setter方法設置 - setCurrency(currency)
Java屬性綁定
通常情況下,我希望能夠使用基於條件不同的貨幣符號,如(這個問題的範圍之內)。我可能想通過點擊按鈕將貨幣從$換爲£。在這種情況下,我希望所有CurrencyFields立即顯示新貨幣符號的金額。
我已經知道,使用Properties
和Binding
可以用來更新一個變量,當另一個變量更新沒有任何額外的方法。 現在,以更實用的方式,我希望如果我撥打setCurrency("$")
方法,具有Rs2,000的字段將立即顯示$ 2,000。
我怎樣才能使用屬性和/或綁定或基本上任何其他方式?
我認爲這可以幫助你:https://stackoverflow.com/questions/35093145/string-with-numbers-and-letters-to-double-javafx – Sunflame
假設你使用'TextField'的' text'屬性來顯示數字和貨幣符號,恐怕這是不可能的,因爲任何'text'屬性的綁定都會使'TextField'不可用(綁定屬性不能設置)。您需要替換所有文本字段的貨幣符號而無需綁定。如果貨幣存儲在一個屬性中,你可以從一個監聽器完成。 – fabian
不相關:不需要繼承textField,而是使用TextFormatter配置textField。除此之外:我不太瞭解這個問題 - 你到底在徘徊什麼?並且改變貨幣肯定會改變價值......請提供一個SSCCE來證明你在做什麼以及你如何達不到它 – kleopatra