我有一個擴展JFrame並將兩個Jpanel打包到其上的類,一個是狀態欄JPanel,另一個是contentDisplay Panel。向JFrame添加狀態欄的問題
根據contentDisplay面板中所做的更改,我需要動態更改狀態欄Jpanel中的標籤文本。爲了達到這個目的,我使用下面的代碼爲狀態欄面板創建了一個單獨的類。
public class StatusBar extends JPanel {
JLabel status;
/** Creates a new instance of StatusBar */
public StatusBar() {
super();
status = new JLabel("Ready and Running");
this.add(status);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString(status.getText(), 10,10);
}
public void setMessage(String message) {
status.setText("Status : " + message);
repaint();
}
}
我已創建此類的對象並將其添加到JFrame上。該面板被添加,但是當我在隨後的框架實現中調用setMessage()方法時,消息沒有被重新繪製,即狀態面板沒有刷新狀態消息。我該如何解決這個問題? PS:我不想重新驗證()和重繪()我的父JFrame的每一個狀態的變化。我只是希望狀態面板每次都刷新爲上面的代碼。有沒有辦法做到這一點?
不,我已經試過這個。 setText不起作用,因爲我沒有單獨從JFrame類調用它。我需要在由JFrame使用的不同類中調用setMessage。 如果我這樣做,文本將被設置爲標籤,但它不會顯示在框架上。 – 2011-03-17 08:25:33
當你問這個問題時,你不認爲這種信息會有幫助嗎?請編輯您的問題,儘可能多地提供有關您的實際問題的信息。看起來你的問題與__how__更相關,你正在使用類 – 2011-03-17 08:36:18
@Vamsi,調用setMessage方法無關緊要,這是處理問題的適當方法。如果這不適合你,那麼你的問題實際上是在你的代碼中的其他地方。 – jzd 2011-03-17 11:03:05