在JScroll中插入一个布局为null的JPanel



我有一个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使用null布局时,您的问题似乎是询问如何将JPanel添加到JScrollPane,答案很简单:

  • 首先不要使用null布局。由于JScrollPane机制需要使用null布局,因此使用null布局几乎可以保证JScrollPane所包含的组件不会适当滚动
  • 要么这样,要么你将被要求创建一个扩展JPanel并实现Scrollable接口的类,这将需要更多的工作,而且是完全不必要的工作
  • 相反,你真的被迫学习如何使用,然后使用适当的布局管理器组合,让你的JPanel保持和显示它们的组件。请注意,您可以嵌套JPanel,每个JPanel都使用自己的布局,从而轻松创建复杂但易于维护的GUI。有关这方面的更多信息,请查看布局管理器教程
  • 将JPanel添加到JScrollPane中很容易。将JPanel传递到JScrollPane的构造函数JScrollPane scrollpane = new JScrollPane(myPanel);中,或者通过setViewportView(myPanel)将JPanell传递到JScrollPane视口视图中。以下是JScrollPane教程,以及一般的Swing教程

相关内容

  • 没有找到相关文章

最新更新