Создание Eclipse-подобной панели линейных маркеров в текстовом редакторе Java - PullRequest
2 голосов
/ 28 марта 2011

Приложение Java с графическим интерфейсом содержит прокручиваемое текстовое окно. Помимо стандартной полосы прокрутки мне нужна вертикальная полоса с цветными маркерами линий, как в Eclipse. Надеюсь, вы знаете, о чем я говорю. Эта полоса не прокручивается, позиции маркеров располагаются пропорционально высоте всего текста. Когда пользователь нажимает на любой маркер, текстовое поле прокручивается до соответствующей строки.

Мне не удалось найти такой элемент управления в наборах виджетов SWT. Очевидно, что SWT содержит это где-то. Идеальным вариантом для меня был бы компонент Swing, потому что приложение основано на Swing.

Большое спасибо заранее.

Ответы [ 3 ]

1 голос
/ 29 марта 2011

Линейка, которую вы хотите, не из SWT. Это из плагина jface-text. Класс, который вы ищете: org.eclipse.jface.text.source.CompositeRuler

1 голос
/ 28 марта 2011

Я не думаю, что есть компонент, связанный с Swing, и я не знаю ни одной библиотеки, предоставляющей такой компонент, но вы должны быть в состоянии сделать это самостоятельно.

Предоставьте панель рядом с областью прокрутки, и всякий раз при повторном отображении панели прокрутки / текстовой панели эта панель также будет повторно отображаться. Затем разместите маркеры (это может быть JLabels на первом шаге, позже нарисуйте свой и добавьте обработку мышью) в соответствии с линиями - в этом случае менеджер компоновки должен быть нулевым.

Положение может быть рассчитано с использованием line/numlines * height(panel), например, для строки 20 из 100 и высоты панели 200 положение маркера будет на высоте 20/100 * 200 пикселей = 40 пикселей.

0 голосов
/ 28 февраля 2014

Если вы все еще спрашиваете, вот (не бесплатный) компонент маркера: http://www.sideofsoftware.com/marker_bar.htm

...