Контейнерные панели и JScrollPane

Я работаю над GUI, и я программист-любитель. У меня проблема с этим кодом. Я ничего не вижу на кадре.

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 1366, 768);
JPanel contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

Container midPanel = new JPanel();
midPanel.setLayout(null);
Dimension preferredSize = new Dimension(700, 700);
midPanel.setPreferredSize(preferredSize);

            .....

Container k1 = new JPanel();
k1.setSize(50, 700);
k1.setLocation(0, 0);
k1.setLayout(new GridLayout(rowNum, 1));

k1.setVisible(true);

midPanel.add(k1);

            .......

Dimension jspD = new Dimension(500,500); 
JScrollPane jsp = new JScrollPane(midPanel);
jsp.setPreferredSize(jspD);
jsp.setLocation(0, 0);
jsp.setVisible(true);

contentPane.add(jsp);

Буду признателен за вашу помощь.

1 ответ

Решение
midPanel.setLayout(null);

Вы всегда должны использовать менеджеры макетов, никогда не удаляйте макет по какой-либо причине, кроме случаев, когда у вас есть назначение, необходимое для использования абсолютного макета (нулевой макет).

Проблема заключается в абсолютном расположении, вы должны указать расположение компонентов внутри панели с помощью component.setBounds(x,y,width,height) каждый раз, добавляя компонент, иначе он не будет виден.

Смотрите это руководство по использованию менеджеров по расположению.

Другие вопросы по тегам