Как вы можете добавить несколько элементов в 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 ответ

Решение

Делая это:

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

Вы пытаетесь добавить компонент в JViewPort панели прокрутки, показанный на рисунке ниже:

введите описание изображения здесь

Это не имеет никакого смысла. Как указано в разделе "Как использовать пробную версию прокрутки":

JScrollPane обеспечивает прокручиваемое представление компонента.

Этот единственный компонент является представлением порта представления. Поэтому, если вы хотите иметь более одного компонента на панели прокрутки, вы должны обернуть все эти компоненты в облегченный компонент, такой как JPanel, и установить его в качестве представления порта представления панели прокрутки:

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

scroll.setViewportView(content);
Другие вопросы по тегам