我不像我想的那樣理解Java GUI。在我的畫框方法中,我想擦掉所有當前的按鈕,然後添加新的按鈕。 (總體目標是有一個界面,用戶可以看到角色並點擊按鈕下載與角色相關的文檔,因爲每個角色都不同,當用戶從我的列表中選擇一個新用戶時,一組新的文檔和按鈕將可供他們使用。)在重新繪製方法中在GUI中添加組件
這是一個測試框架,我剛剛寫道,顯示事情橫向。它有我在實際的程序中使用類似的範例,沒有太多雜亂:
public class GUITest extends JFrame
{
/**
* @param args
*/
public static void main(String[] args)
{
Container gui_test = new GUITest();
}
private JComponent content = null;
public GUITest()
{
super();
setVisible(true);
}
public void paint(Graphics g)
{
this.removeAll();
content = new JPanel();
JComponent test_button = new JButton("New Button 1");
JComponent button = new JButton("New Button 2");
content.add(button);
content.add(test_button);
this.add(content);
super.paint(g);
}
}
沒有調用的removeAll()按鈕將繼續在JPanel的頂部拋出,但與呼叫,沒有出現。我不知道這是爲什麼,因爲我正在添加組件,對吧?
編輯
明白了,讓我給你一個更詳細的分類。客戶通過在西面板上查看遊戲中的角色列表來導航我的程序。他們可以從列表中選擇一行,在東面顯示字符細節。細節是一個圖像和描述。最近,我添加了該特定字符的相關文件,該文件將顯示在東面板的底部。我創建了密鑰監聽器,因此客戶端可以通過按下一個數字鍵快速查看文檔,但我也希望讓他們能夠點擊該按鈕來啓動pdf視圖並查看文檔的內容。
由於每個字符都有不同的相關文檔和不同數量的文檔,我每次都重新繪製按鈕,以反映相關文檔的數量和文檔的適當標題。這是重繪出現奇怪的地方。你給了我一個很好的錯誤解釋,但我不知道如何讓客戶端訪問文檔,除了繪製文檔的描述以及啓動它所需的熱鍵。那有意義嗎?
我可以建議您閱讀http://docs.oracle.com/javase/tutorial/uiswing/&http://docs.oracle.com/javase/tutorial/2d/index.html(瞭解更多信息看看引擎蓋下) – MadProgrammer 2012-07-14 02:07:53