我正在嘗試重置JLabels數組。標籤頂部有圖像,所以當我按下按鈕標籤應該被重置。我試圖這樣做如何重置JLabel
for(int i=0; i<desks.length; i++)
{
desks[i].setText("");
rightPanel.add(desks[i]);
}
因此,如果任何人有一個想法,這將是great.cheers。
我正在嘗試重置JLabels數組。標籤頂部有圖像,所以當我按下按鈕標籤應該被重置。我試圖這樣做如何重置JLabel
for(int i=0; i<desks.length; i++)
{
desks[i].setText("");
rightPanel.add(desks[i]);
}
因此,如果任何人有一個想法,這將是great.cheers。
這是可能的方式之一
int n = panel.getComponentCount();
if (n > 0) {
Component[] components = panel.getComponents();
for (int i = 0; i < components.length; i++) {
if (components[i] instanceof JLabel) {
JLabel label = (JLabel) components[i];
label.setText("");
}
}
}
您不必再次將標籤添加到內容窗格以重置其文本。 只要做到以下清理標籤文本:
for(int i=0; i<desks.length; i++)
{
desks[i].setText("");
}
沒有必要將它們重新添加到面板上。只需將文本設置爲空字符串即可。
如果這沒有發生,確保你正在做的事件調度線程上,像這樣:
SwingUtilities.invokeLater(new Runnable() {
public void run() {
desks[i].setText("");
}
});
對於「SwingUtilities」建議+1 + – GETah 2012-03-26 13:18:33
*「如果任何人有想法「*爲了更快地獲得更好的幫助,請發佈[SSCCE](http://sscce.org/)。 – 2012-03-26 13:10:48
爲了更加清晰,您可以將這些解決方案中的一個包裝到一個方法中並將其命名爲'resetLabels'。 – mre 2012-03-26 13:52:21