Проблемы с компоновкой Java
Я борюсь с макетами в моем приложении. Я совершенно новичок в Java. Я разработал приложение, которое я разработал некоторое время назад в VB. Пытаясь выучить Java, я разработал то же приложение с абсолютными макетами (по материалам учебника YouTube) и панелями с вкладками. Мне не понравилось то, что я разработал, поэтому я начал все сначала. На этот раз с помощью менеджеров макетов и макета карты в качестве основного макета. Я изо всех сил пытаюсь получить вещи, как я хочу. Я провел много дней проб и ошибок, получая свои панели так, как я хочу. У меня есть основной класс с 4 разными картами. Я попытался использовать Eclipse и Window Builder, чтобы попытаться спроектировать свои панели, но это было грандиозным провалом. Я вернулся к разработке своих макетов без дизайна в Eclipse и в основном остановился на макете границ в качестве основы для всех карт. Прямо сейчас у меня проблемы с одной панелью. Первая панель - это моя первоначальная попытка получить то, что я хочу, с абсолютным макетом Второе изображение - моя последняя попытка использовать макет границы с одной кнопкой (Назад) на Юге, некоторые текстовые поля в Центре и мой основной дисплей на Севере. СЕВЕРНЫЙ дисплей недостаточно широк. Вот кодовый код для моей СЕВЕРНОЙ панели:
setLayout(new BorderLayout(0, 0));
JPanel panelNorth = new JPanel();
add(panelNorth, BorderLayout.NORTH);
JScrollPane scrollPane = new JScrollPane();
panelNorth.add(scrollPane);
tableDisplayScores = new JTable();
scrollPane.setViewportView(tableDisplayScores);
JPanel panelCenter = new JPanel();
add(panelCenter, BorderLayout.CENTER);
Прежде чем я полностью сойду с ума, как я могу увеличить ширину моей СЕВЕРНОЙ панели, не переходя в абсолют? Или я в этом совершенно не прав?
Пример абсолютного макета:
1 ответ
Как говорится в моем комментарии, я понял это методом проб и ошибок. Я удалил панель North и добавил свою полосу прокрутки в BorderLayout.NORTH:
JScrollPane scrollPane = new JScrollPane();
add(scrollPane, BorderLayout.NORTH);
tableDisplayScores = new JTable();
scrollPane.setViewportView(tableDisplayScores);