Java 将布局为空的JPanel插入JScroll

Java 将布局为空的JPanel插入JScroll,java,swing,jscrollpane,layout-manager,null-layout-manager,Java,Swing,Jscrollpane,Layout Manager,Null Layout Manager,我有一个JPanel(myPanel),里面有很多按钮(这个面板包含在另一个包含其他组件的面板中)。我会将这个JPanel(myPanel)插入一个滚动条,以便更好地控制按钮 这是我代码的一部分: JPanel firstPanel = new JPanel(null); ...... ...... JPanel myPanel = new JPanel(null); myPanel.setBounds(0, position+22, 40

我有一个JPanel(myPanel),里面有很多按钮(这个面板包含在另一个包含其他组件的面板中)。我会将这个JPanel(myPanel)插入一个滚动条,以便更好地控制按钮

这是我代码的一部分:

    JPanel firstPanel = new JPanel(null);
    ......
    ......        
    JPanel myPanel = new JPanel(null);
    myPanel.setBounds(0, position+22, 400, 500);
    for (int i=0; i<size; i++) {
        JButton button = new JButton(myList.get(i));
        if (counter%4 == 0) {
            button.setBounds(270, 0+(4*i), 90, 18);
        } else if (counter%3 == 0) {
            button.setBounds(180, 4+(4*i), 90, 18);
        } else if (counter%2 == 0) {
            button.setBounds(90, 8+(4*i), 90, 18);
        } else {
            button.setBounds(0, 12+(4*i), 90, 18);
        }
        myPanel.add(bottone);
     }
     ......
     ......
     firstPanel.add(myPanel);
JPanel firstPanel=newjpanel(空);
......
......        
JPanel myPanel=新的JPanel(空);
myPanel.setBounds(0,位置+22400500);

对于(int i=0;i当JPanel使用
null
布局时,您的问题似乎是询问如何将JPanel添加到JScrollPane,答案很简单:

  • 首先也是最重要的不要使用
    null
    布局。使用null布局几乎可以保证JScrollPane持有的组件不会正确滚动,因为JScrollPane机制需要使用此布局
  • 或者您需要创建一个扩展JPanel并实现可滚动接口的类,这将需要更多的工作,并且完全不必要的工作
  • 相反,您必须学习如何使用布局管理器,然后使用适当的布局管理器组合,以使您的JPanel保存和显示其组件。请注意,您可以嵌套JPanel,每个JPanel使用自己的布局,从而轻松创建复杂但易于维护的GUI。请查看了解更多信息
  • 将JPanel添加到JScrollPane很容易。可以将JPanel传递到JScrollPane的构造函数中:
    JScrollPane scrollpane=new JScrollPane(myPanel);
    或者通过
    setViewportView(myPanel)
    将JPanel传递到JScrollPane的视口视图中。下面是关于这方面的详细信息和

当JPanel使用
null
布局时,您的问题似乎是询问如何将JPanel添加到JScrollPane,答案很简单:

  • 首先也是最重要的不要使用
    null
    布局。使用null布局几乎可以保证JScrollPane持有的组件不会正确滚动,因为JScrollPane机制需要使用此布局
  • 或者您需要创建一个扩展JPanel并实现可滚动接口的类,这将需要更多的工作,并且完全不必要的工作
  • 相反,您必须学习如何使用布局管理器,然后使用适当的布局管理器组合,以使您的JPanel保存和显示其组件。请注意,您可以嵌套JPanel,每个JPanel使用自己的布局,从而轻松创建复杂但易于维护的GUI。请查看了解更多信息
  • 将JPanel添加到JScrollPane很容易。可以将JPanel传递到JScrollPane的构造函数中:
    JScrollPane scrollpane=new JScrollPane(myPanel);
    或者通过
    setViewportView(myPanel)
    将JPanel传递到JScrollPane的视口视图中。下面是关于这方面的详细信息和
简单。首先,也最重要的是不要使用
null
布局。这样做会将您的代码标记为新手程序,因为如果您创建了任意长度的Swing GUI,您将知道创建和维护适当使用布局管理器的GUI要容易得多。但更重要的是,使用null布局几乎可以保证JScrollPane持有的组件不会适当滚动。也请检查可能的副本。简单。首先,不要使用
null
布局。这样做会将您的代码标记为新手程序,因为如果您创建了任意长度的Swing GUI,您将知道创建和维护GUI的适当版本要容易得多y使用布局管理器。但更重要的是,使用空布局几乎保证了JScrollPane持有的组件不会正确滚动。也可以作为可能的副本签出。