如何向JScrollPane添加多个元素

时间:2014-02-14 20:44:21

标签: java swing jscrollpane

所以我试图在JScrollPane元素中添加多个元素,但到目前为止我还没能把它拉出来。 我可以这样做,以便第一个元素出现,在我的情况下是一张图片。但是在向JScrollPane添加一个额外的面板后,第一个元素消失了,甚至第二个元素,即新面板,也没有显示在我的JScrollPane上。

        JFrame scherm = new JFrame("t?");
    scherm.setVisible(true);
    scherm.setSize(300, 300);
    scherm.setLocationRelativeTo(null);
    scherm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //
    String path = "C:\\Users\\Bernard\\Documents\\Paradox Interactive\\Crusader Kings II\\mod\\viking\\map\\provinces.bmp";
    Image image = ImageIO.read(new File(path));
    ImageIcon icon = new ImageIcon(image);


    JLabel label = new JLabel(icon);
    JScrollPane scroll = new JScrollPane(label);
    JPanel paneel2= new JPanel();
    paneel2.setSize(new Dimension(400,400));
    scroll.getViewport().add(paneel2,null);

    scherm.add(scroll);

感谢您的时间!

1 个答案:

答案 0 :(得分:7)

通过这样做:

scroll.getViewport().add(paneel2,null);

您正尝试将组件添加到下图所示的滚动窗格JViewPort中:

enter image description here

这没有任何意义。正如How to Use Scroll Panes试验中所述:

  

一个   JScrollPane   提供组件的可滚动视图。

此单个组件是视口的视图。因此,如果要在滚动窗格中包含多个组件,则必须将所有这些组件包装在轻量级组件(如JPanel)中,并将其设置为滚动窗格的视图端口视图:

JPanel content = new JPanel();
content.add(label);
content.add(paneel2);

scroll.setViewportView(content);