2013-10-11 64 views
1

我創建了一個應用程序,並使用Netbeans的swing swing builder製作了一個簡單的gui。 我創建了一個jtextfield和一個jlabel。 jlabel放置在jtextfield上,但在開始時不可見。輸入jTextFields在顯示Jlabel之後消失。

這是我的問題。當我運行我的應用程序時,我可以在jtextfield中輸入文本。這工作沒有問題。之後,我用一個按鈕激活我的jlabel。 jlabel顯示出來(在我想要的jtextfield的頂部)。當我停用jlabel時,它會消失,但我的輸入文本也消失了。實際上它是隱藏的,因爲當我再次選擇jtextfield時,部分文本開始再次出現。另外,當我開始在jtextfield中再次寫文本時,所有以前的文本都會再次出現。

有沒有什麼方法可以再次更新字段或什麼東西來顯示他們,只要我讓jlabel出現/消失在我的jtextfields上?或者這是一些類型的錯誤?

我沒有提供這個代碼,因爲在我創建的簡單程序中沒有涉及高級編程。

我希望有人能爲我解決這個問題。

+1

您需要提供一個可運行的問題示例,然後我們才能正確診斷它 – MadProgrammer

+0

爲什麼要用jlabel覆蓋jtextfield?你想達到什麼目的?也許你可以通過使前景色和背景色相同來實現類似的效果(使文本不可見)...... – LazyCubicleMonkey

+0

而不是疊加組件,你可以考慮交換它們,或者使用'CardLayout'。我沒有提供任何代碼,因爲該解決方案沒有涉及高級編程 – Robin

回答

0

已經自己解決了這個問題。 看起來我的文本框沒有正確分層;)

0

你或許可以使用

JFrame.validate(); 

你刪除的JLabel後刷新UI,那麼它應該正確顯示的JTextField ...

如果不工作,你也可以嘗試:

JPanel.setVisible(false);

JPanel.setVisible(true);

(假設你在你的程序中使用一個JPanel) 這也將刷新你的UI

但是這將是,如果您添加的代碼要簡單得多,所以我們可以看到你可以做什麼不正確