Я пытаюсь добавить JScrollPane
в мой JList
, но по какой-то причине он не работает. Я прочитал несколько руководств как здесь, так и на других сайтах, и, похоже, я правильно следую инструкциям. Я пробовал это, используя как DefaultListModel
, так и не DefaultListModel
, если бы это имело бы значение. Я также попытался изменить размер самого виджета, и это тоже не сработает.JScrollPane не отображается для JList
Вот мой код. itemNames
- массив из Strings[]
, который содержит различные имена сувениров, которые я добавляю в JList. Я использую BorderLayout()
и панель я пытаюсь добавить JScrollPane
к использует GridBagLayout()
:
souvenirList = new JList(itemNames);
souvenirList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
souvenirList.setLayoutOrientation(JList.VERTICAL);
souvenirList.setVisibleRowCount(-1);
scrollPane = new JScrollPane(souvenirList);
gbc3.gridx = 1;
gbc3.gridy = 1;
centerPanel.add(scrollPane, gbc3);
c.add(centerPanel, BorderLayout.CENTER);
Окно показывает с именами в нем, но не JScrollPane :(Я надеялся, что кто-то может помочь я не знаю, может быть, указать на простую ошибку, которую я могу сделать. Спасибо всем заблаговременно. Пожалуйста, не публикуйте ссылки на учебные пособия по теме cus, поверьте, я их полностью изучил.
EDIT: В этом маленький исполняемый пример, который я построил, используя в основном код из моего предыдущего фрагмента, панель отображается хорошо! Почему это может быть? Может ли это что-то сделать с JPanel, к которому я добавляю? Или, может быть, GridBagLayout? спутать d здесь ....
import javax.swing.*;
import java.awt.*;
public class JScroll extends JFrame
{
JList souvenirList;
JScrollPane scrollPane;
Container c = getContentPane();
private String[] itemNames = {"mug","cap","tee shirt","sweat shirt","pennant","mini stick",
"bobblehead","paper bag","foam paw","thunderstix"};
public JScroll()
{
setLayout(new FlowLayout());
souvenirList = new JList(itemNames);
souvenirList.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
souvenirList.setLayoutOrientation(JList.VERTICAL);
//souvenirList.setVisibleRowCount(-1);
scrollPane = new JScrollPane(souvenirList);
c.add(scrollPane);
}
public static void main(String[] args)
{
JScroll frame = new JScroll();
frame.setSize(400,300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
'souvenirList.setVisibleRowCount (-1);' не поможет, вы хотите показать строки '-1' в панели прокрутки ?? – MadProgrammer
Это было частью примера оракула. Я пробовал -1, 0, 3, 4 ect ect, и это не делает разницы. – FuegoJohnson
Рассмотрите возможность использования [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это приведет к меньшему путанице и лучшим ответам. – MadProgrammer