java - 如何将多个元素添加到 JScrollPane

标签 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);

感谢您的时间!

最佳答案

通过做这个:

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

您正在尝试将组件添加到滚动 Pane 的 JViewPort如下图所示:

enter image description here

这是没有意义的。如 How to Use Scroll Panes 中所述审判:

A JScrollPane provides a scrollable view of a component.



这个单一组件是视口(viewport)的 View 。因此,如果您想在滚动 Pane 中包含多个组件,则必须将所有这些组件包装在轻量级组件中,例如 JPanel并将此设置为滚动 Pane 的视口(viewport) View :
JPanel content = new JPanel();
content.add(label);
content.add(paneel2);

scroll.setViewportView(content);

关于java - 如何将多个元素添加到 JScrollPane,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21789190/

相关文章:

java - 无法在网页中查看数据库中存储的记录

java - 在 Android 应用中仅显示截止日期为今天的待办事项

Java 图形用户界面组件

java - 在有限的空间内显示图像的特定部分?

java - 将 JScrollPane 添加到 JPanel?

java - 如何访问 JEditorPane 中的小部件?

java - 无法打开 JDBC 连接 oracle 和 spring boot

java - 使用 Swing (netbeans) 在 SMSlib sendmessage 上添加进度条

java - 如何在 Netbeans 中为未修饰的 JFrame 添加阴影

java - 如何在不使用 setPreferredSize() 的情况下调整 JScrollPane 中 JTable 的大小