Всем привет. Мне нужно создать окно, в которое автоматически будут добавляться элементы друг под другом (тест, вопросы будут читаться из файла), также оно должно скроллиться. Для этого полностью подходит BoxLayout, с которым возникла проблема. Он не размещает элементы друг под другом, также не появляются полосы скролла. Знатоки, подскажите, пожалуйста, что я делаю не так?
P.S. косяк со скроллом исправил.
package frames;
import javax.swing.*;
import java.awt.*;
public class Test1Frame extends JFrame {
private JPanel test1Panel = new JPanel();
private JScrollPane scrollPane = new JScrollPane(test1Panel);
public Test1Frame(){
super("Тест 1");
setLayout(new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS));
setSize(800, 600);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
getContentPane().add(scrollPane);
setPreferredSize(new Dimension(800, 600));
setLocationRelativeTo(null);
setVisible(true);
runTest1();
}
private void runTest1(){
test1Panel.add(new JLabel("1123123123123123"));
for(int i = 0; i < 100; i++)
test1Panel.add(new JButton("123123123123123123"));
}
}
Установите BoxLayout панели:
test1Panel.setLayout(new BoxLayout(test1Panel, BoxLayout.Y_AXIS));
вместо:
setLayout(new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS));
Вызовите
runTest1();
перед:
setVisible(true);
вот так:
runTest1();
setVisible(true);
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости