Использование JScrollPane на JLabel в Java - PullRequest
0 голосов
/ 15 мая 2018

Почему-то у меня не появляется полоса прокрутки.Что мне нужно изменить?

bigP = new JLabel();
setLayout(new BorderLayout());

JPanel helper = new JPanel(new FlowLayout());
helper.add(bigP);
helper.setPreferredSize(new Dimension(500,600));
helper.add(new JScrollPane(bigP, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, 
                             JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS));

picPane = new JPanel(new BorderLayout());
picPane.add(helper,BorderLayout.CENTER);
picPane.setMaximumSize(new Dimension(500, 600));
picPane.setVisible(true);

add(picPane, BorderLayout.CENTER);

После того, как изображение выбрано, эта строка называется:

bigP.setIcon(img);

Я понял, что мне наверняка понадобится вспомогательная панель какBorderLayout будет принимать только один компонент (насколько я понял).К сожалению, моя полоса прокрутки не будет отображаться вообще, хотя на картинке.

1 Ответ

0 голосов
/ 15 мая 2018
helper.setPreferredSize(new Dimension(500,600));

Не указывайте предпочитаемый размер. Панель будет определять свой собственный предпочтительный размер на основе компонентов, добавленных на панель.

JPanel helper = new JPanel(new FlowLayout());
helper.add(bigP);
sc = new JScrollPane(bigP,JScrollPane

Также компонент может иметь только одного родителя. В приведенном выше коде вы пытаетесь добавить "bigP" в "помощник". Но затем в следующем операторе вы добавляете его в область прокрутки, поэтому «bigP» удаляется с панели «помощник» и будет отображаться только в области прокрутки.

//pic.add(bigP,BorderLayout.CENTER);
pic.add(helper,BorderLayout.CENTER);

Также вы никогда не добавляете панель прокрутки на панель «рис». Код должен быть:

//pic.add(bigP,BorderLayout.CENTER);
//pic.add(helper,BorderLayout.CENTER);
pic.add(sc, BorderLayout.CENTER);

Так что теперь у вас должна быть структура, которая выглядит следующим образом:

- pic
    - sc
        - bigP

Было бы также полезно, если бы вы использовали больше описательных имен, чтобы все знали, что это за переменные.

...