Компонент для отображения текста в виде консоли на стеклянной панели - PullRequest
3 голосов
/ 21 июня 2011

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

Стеклянная панель, кажется, является способом наложения текста, так много у меня работает. Моя проблема в том, какой именно компонент использовать для фактического отображения текста.

JTextArea может отображать текст, но, насколько я вижу, он может делать это только сверху вниз экрана - есть ли способ заставить его прокручивать текст вверх снизу экрана?

JLabel, напротив, может выровнять первую строку текста по нижней части экрана и даже взять добавленный текст в этой строке, но когда я добавляю больше строк, разделенных символами новой строки, кажется, что они просто проглатывают их даже после вызова перекрасить и проверить. Есть ли способ заставить его прокрутиться вверх с новым текстом?

Или есть другой компонент, который я должен использовать вместо этого?

Ответы [ 2 ]

3 голосов
/ 21 июня 2011

Мне действительно нравится JXLayer для эффектов, наложенных на компоненты Swing. В какой-то момент JXLayer планировалось включить в Java 7 . К сожалению, движение вокруг Java.net потеряло весь хороший контент, который был у автора. Есть еще несколько отличных ресурсов (для этого требуется Java 7) в Интернете. Я использую JXLayer для предоставления панелям с занятым состоянием, имеющим веб-спиннер и серым цветом.

Другая альтернатива (не такая способная, как JXLayer IMHO): MigLayout имеет абсолютное позиционирование, что, возможно, проще, чем GlassPane.

2 голосов
/ 21 июня 2011

JLabel будет самым простым.В противном случае вам придется переопределить paintComponent, чтобы сделать что-нибудь необычное, например анимацию движения текста.

...