Есть ли LayoutManager в Java API, который позволил бы мне сделать это? - PullRequest
0 голосов
/ 12 января 2012

Я программирую этого создателя уровня для игры, которую делают я и несколько моих друзей, но на данный момент GUI использует нулевую разметку, чего я не хочу.Пока он работает нормально, но я все еще против этого, и я знаю, что все остальные также советуют вам ВСЕГДА использовать LayoutManager.На самом деле я не хочу идти на компромисс с дизайном, как сейчас, поэтому я очень хочу узнать, есть ли LayoutManager, который позволяет мне создавать графический интерфейс, который выглядит следующим образом:enter image description here

ЭТО ДОЛЖНО БЫТЬ В СТАНДАРТНОМ API JAVA!:)

Ответы [ 4 ]

2 голосов
/ 12 января 2012

Это выглядит как хорошая работа для BorderLayout. Поместите кнопки во вложенный контейнер как элемент NORTH. Добавьте JScrollPane в качестве компонента CENTER. Сама сетка выглядит так, как будто она является хорошим кандидатом для GridBagLayout или, возможно, GridLayout.

2 голосов
/ 12 января 2012

Краткий ответ, да: GridBagLayout.Но работать и отлаживать это будет непросто.

Длинный ответ: мне кажется, что вы могли бы сделать это лучше всего с BorderLayout, JPanel для JButtons иJTable с пользовательскими TableCellRenderers и TableCellEditors.

0 голосов
/ 12 января 2012

Используйте GroupLayout для всей панели и пользовательский метод рисования для карты.

Я не думаю, что многие здесь будут рекомендовать GroupLayout, потому что он сложнее, чем другие менеджеры по расположению,Мне это нравится, потому что он дает великолепные масштабируемые результаты, поэтому я потратил время на его понимание.Теперь я почти ничего не использую - особенно для панелей взаимодействия с пользователем с кнопками и текстовыми полями.

Для карты я бы создал пользовательский MapPanel и перезаписал paintComponent().Конечно, вы должны написать свой собственный алгоритм прокрутки, но я думаю, что это небольшая выгода для того, чтобы не иметь дело с полосами прокрутки.Вы можете сделать так, чтобы кто-то мог просто перетащить мышь и переместить карту.Используйте колесо мыши, чтобы увеличить масштаб и сделать интерфейс очень интуитивно понятным.Если вы хотите рисовать полосы прокрутки, вы можете сделать это тоже.

Я построил несколько интерфейсов, используя подобные модели.Я построил несколько карт для игр с использованием этой модели, а также пакет диаграмм финансового рынка.Это очень легко добавить пользовательские функции, чтобы делать некоторые великие вещи, которые было бы кошмаром, чтобы попытаться сделать в JTable.

0 голосов
/ 12 января 2012

Проверьте отличную документацию, доступную для Java от самого Sun:

http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

Можете ли вы заметить GridLayout и GridBagLayout? Если вы положите его в контейнер с прокруткой, это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...