Мне нужно построить графический интерфейс Swing, как это
GUI Mockup http://img199.imageshack.us/img199/7271/mockupl.png
где обычно есть 40 колонок тура. В каждом столбце обычно до 20 заказов за тур. Заказы могут быть сгруппированы в рамках тура. Должна быть возможность горизонтального увеличения до столбцов, до заказов D & D в рамках тура и других туров. Позже представление может измениться, включая, например, изображения.
Однажды я сделал нечто подобное, используя JTable, но для этой задачи я думаю, что JTable не является правильным решением. А из-за группировки заказов нет реальных строк.
Мысль № 1:
Я подумал об использовании JPanel, LayoutManager (или NullLayout) и JComponents для этого, но я не уверен, что это путь.
Мысль № 2:
Другая возможность состоит в том, чтобы использовать JPanel (в панели прокрутки), установить для его размера правильное значение, переопределить paintComponent и нарисовать все самому (возможно, с помощью такого подхода, как TableCellRenderer, чтобы не нужно рисовать все самостоятельно - то есть, используя один рендерер для каждого типа для рендеринга, установите его значения, используйте Graphics.translate и затем component.paint ...)
В обоих подходах мне нужно реализовать код D & D самостоятельно, # 1 позволил бы использовать реализацию D & D JComponents, но это не было бы так сложно в # 2. Вставка и удаление ордеров в # 2 кажется более простым, поскольку в # 1 задействованы некоторые LayoutManager (или в случае NullLayout все элементы ниже), в противном случае требуется только перерисовка. # 1 может быть проблема с памятью, когда создается так много JComponents, и первоначальное добавление (компонент) в моих первых тестах кажется довольно дорогостоящим.
Что вы думаете? Как бы вы это реализовали? Или, может быть, есть какая-нибудь библиотека для свинга для создания такой панели?