2011-06-22 13 views
0

我在JLabel中顯示數組列表大小。我想要的是每當ArrayList的大小發生變化時,它應該反映在JLabel中。可以做到嗎?我可以將數組列表大小綁定到JLabel嗎?我不想每次都通過jLabel.setText(arrList.size());手動執行此操作。如何將jlabel與ArrayList的大小綁定?

+0

你不能用ArrayList做到這一點,因爲這是不可觀察的。你應該看看JGoodies Binding'ObservableList'及其實現,這可能會有所幫助。 – jfpoilpret

回答

0

Java中不支持將UI組件綁定到數據結構,就像在ActionScript等其他語言中一樣。你可以設置一個計時器,詢問ArrayList有多大,然後相應地設置JLabel的文字。您可能需要在後臺線程中執行此操作,因爲當您的計時器無限循環時,您不想保持主線程。

+0

其實我在做'jLabel.setText(list.size());'每當有東西添加或從列表中刪除。但想知道是否可以自動完成而不調用'setText()'。根據你的回答,我認爲這是不可能的。 –

+0

@Harry Joy:設置「JLabel」文本的唯一方法是使用'setText';你沒有理由避免使用它。你真正的意思是,當列表發生變化時,你不想記得更新標籤,對吧?爲此,我相信您需要創建某種機制來保持它們的同步 - 例如,計時器按指定的時間間隔輪詢列表並更新帶有大小的標籤。 –

+0

是的,我不想記得每當列表發生變化時都要更新標籤,因爲列表發生變化的地方很多。現在讓我試試你的解決方案。 –

相關問題