Хотя это не может быть решением, которое вы в поисках, но от требований у вас есть, похоже, обычай LayoutManager
может быть в состоянии добиться того, что вы после этого. При проектировании и назначении настраиваемого диспетчера макетов, который допускает разрывы строк до Container
(например, Panel
), должно быть возможно иметь Panel
, который допускает разрывы строк.
Laying Out Components Within a Container статья от The Java Tutorials будет предоставлять общую информацию о том, как Компоновка Менеджеры работают в Java, и в частности, Creating a Custom Layout Manager предоставит информацию о том, как сделать заказ Layout Manager, чтобы применить к Container
.
Поведение FlowLayout
(диспетчер макета по умолчанию для Panel
) кажется довольно близким к поведению, которое может быть после. Добавление функциональности в разрыв строки кажется недостающим.
Предложение: Возможно заказ Layout Manager может иметь возможность добавить разрыв строки, имеющие Component
, который представляет собой разрыв строки, который может быть добавлен к Container
с помощью метода add()
.
Например, есть класс постоянной Component
в пользовательском Layout Manager, такие как (гипотетическом) LineBreakLayout.LINE_BREAK
, добавив, что к Container
может сказать пользовательский менеджер компоновки, чтобы перейти к следующей строке. Возможно, реализация может быть как:
Panel p = new Panel(new LineBreakLayout());
p.add(new Label("First Line"));
p.add(LineBreakLayout.LINE_BREAK);
p.add(new Label("Second Line"));
выше гипотетическаяLineBreakLayout
будет затем сделать первый Label
в одной строке и во второй строке второго Label
.
Я хочу сделать ярлыки интерактивными, чтобы они могли вести себя как гиперссылки. Могу ли я сделать это с помощью TextArea? (Я не хочу использовать JEditorPane с HTML.) – Kaarel
Любая причина против JEditorPane (мне просто интересно)? – basszero
Казалось, что он медленный, и перебор. Также я не мог понять, как сохранить объект Java с каждой гиперссылкой на странице, чтобы щелчок по ссылке выполнял какое-то действие на основе объекта. – Kaarel