У меня большой компонент (скажем, ширина = 4000 пикселей, высота = 200 пикселей), и я хотел бы видеть его полностью даже на маленьком экране.Я не вижу простого способа сделать компонент обтекания, моя идея заключается в следующем: учитывая фактор (например, 4), компонент будет иметь размер 1000x800, поместив дочерний элемент в 4 строки.Запросы на размер будут преобразованы в обратном порядке, чтобы изменить ребенка, и так далее.При рисовании компонент вызывал бы paint (Graphics) дочернего элемента 4 раза с правильным аргументом Graphics, который отображал бы перенесенное пространство на дочернее пространство.
Однако я не вижу, как обрабатывать все события:я должен установить eventlisteners для каждого сгенерированного детьми события (PropertyChange) и для каждого сгенерированного родителями события (Mouse, Key, Resize, ....)?Это выглядит довольно много картирования, и я был бы рад услышать более простой способ сделать это ...
Я не слишком много смотрел на реализацию JViewport, но, возможно, это могло бы помочь мне невы думаете?
спасибо за ваши предложения!
Фредерик.
Отредактировано, чтобы ответить на некоторые комментарии, которые предлагают изменить дизайн компонента:
Позвольте мне не согласиться здесьСоздание компонента - это одна работа, а демонстрация - другая.Если я хочу показать его с помощью полос прокрутки, я использую панель прокрутки, тогда как, если я хочу показать ее разделенной на 4 строки, я хочу использовать аналогичное решение.
Я являюсь разработчиком компонентапод вопросом (и имел острые слова с собой, как и предполагалось, но это ни к чему меня не привело :-)).Я на самом деле добавил «код переноса строк», но оказалось (очень быстро!), Что добавление преобразования пространства точек, управление рисованием в кодах самого компонента делает его действительно очень грязным, и именно поэтому я полагаю, чтоКомпонент действительно лучшее решение.Кроме того, создание пользовательского компонента позволяет мне намного проще использовать его в качестве «обертки» для любого другого компонента.Представьте себе, что вам приходилось воссоздавать функциональность, подобную JScollPane, каждый раз, когда вы используете JScollPane, имея дело с положением прокрутки, буферизованным рисованием и всем, что находится внутри ваших собственных компонентов: надеюсь, вам не нужно!