2014-12-07 86 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