2014-12-07 83 views
0

我有一個在垂直佈局中動態分配按鈕的JPanel。問題是,當我把這個面板放在JScrollPane中時,scrollPane會出現在我的按鈕上方。我不知道爲什麼會發生這種情況。這裏的代碼:JPanel在JScrollPane中不可見

public static void GUI() 
{ 
    JFrame frame = new JFrame(GAME_TITLE); 

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setPreferredSize(new Dimension(400,600)); 
    frame.setLayout(new GridLayout(0,1)); 

    Menu theMenu = new Menu(); 
    theMenu.setLayout(new GridLayout(mSize,0)); 
    theMenu.setOpaque(true); 

    JScrollPane scroll = new JScrollPane(theMenu,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); 
    frame.add(scroll); 

    theMenu.createGameButtons(frame); 

    frame.pack(); 
    frame.setVisible(true); 
} 

我已經嘗試了很多事情沒有成功。另外,我連接到一個窗口的鏈接出手

http://i.imgur.com/TFi7rho.png

+0

該缺陷是在不可見的代碼。該錯誤在'createGameButtons'方法中。在那裏,按鈕被創建並添加到框架,而不是將它們添加到菜單本身(我猜是'JPanel'的一個子類)。爲什麼要將框架傳遞給'createGameButtons()'...... – 2014-12-07 05:32:03

+0

是不是'Menu'類是你的JPanel。 – 2014-12-07 05:32:21

+1

請編輯您的問題,以包含展示您描述的問題的[完整示例](http://stackoverflow.com/help/mcve)。 – trashgod 2014-12-07 05:33:00

回答

1

基督教Hujer回答這樣一個問題:

bug是不可見的代碼。該錯誤在方法createGameButtons。在那裏,被創建並添加到幀,而不是將它們添加到菜單本身的按鈕(我想是JPanel子類)

+3

這就是(其中一個原因)爲什麼我們敦促人們發佈MCVE ..;) – 2014-12-07 06:05:55