微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java ScrollPane重叠内容

我对我的JScrollPanes的初学者问题非常肯定.问题是垂直滚动条与封闭面板内的组件重叠(在右侧).当滚动条与JComboBoxes的下拉位重叠时,它会变得有点痛苦.

我把问题归结为这个小片段 – 我希望它说明了这个问题.

public class ScrollTest extends JFrame
{
    public Scrolltest()
    {
        super("Overlap issues!");
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(100,0));

        for(int b=0;b<100;++b)
        {
            panel.add(new JButton("Small overlap here ->"));
        }

        JScrollPane scrollpane = new JScrollPane(panel);
        add(scrollpane);
        pack();
        setVisible(true);
    }

    public static void main(String[] args) 
    {
        new Scrolltest();
    }
}

我先看了看,但看不出是否其他人已经解决了这个问题.对不起,如果它是重复的,非常感谢任何帮助,任何人都可以提供像我这样的java-newb!

最佳答案
问题是JScrollPane的认设置是使用认的JScrollPane.VERTICAL_SCROLLBAR_​​AS_NEEDED来布局组件,这反过来又添加了滚动条而没有再次布置组件.

在您的示例中,您知道需要滚动条,因此请将其更改为始终显示滚动条

public class ScrollTest extends JFrame
{
    public Scrolltest()
    {
        super("Overlap issues!");
        JPanel panel = new JPanel();
        //Insets insets = panel.getInsets();
        //insets.set(5,5,25);
        //insets.set(top,left,bottom,right);
        panel.setLayout(new GridLayout(100,0));

        for(int b=0;b<100;++b)
        {
            panel.add(new JButton("Small overlap here ->"));
        }

        JScrollPane scrollpane = new JScrollPane(panel);
        scrollpane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        add(scrollpane);
        pack();
        setVisible(true);
    }

    public static void main(String[] args) 
    {
        new Scrolltest();
    }
}

原文地址:https://www.jb51.cc/java/437918.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐