Попытка воссоздать панель разговоров Skype с помощью Swing - PullRequest
1 голос
/ 18 марта 2012

Я пытаюсь воссоздать Skype, обрабатывает мгновенные сообщения с использованием компонентов Swing. Я использую JList с пользовательским ListCellRenderer для визуализации каждой ячейки в списке. ListCellRenderer расширяет JPanel, JPanel просто содержит метку (где я поставлю имя пользователя) и JTextArea, куда будут отправляться сообщения пользователей. JTextArea - это то, с чем у меня проблемы.

Вот изображение того, что у меня есть на данный момент -

  • Я удалил полосу прокрутки, которая автоматически поставляется с текстовой областью в netbeans.
  • Я показываю навигатор, представление «Дизайн» и реальную программу (список состоит из двух элементов) на этом изображении.

enter image description here

  1. Текст в textarea на самом деле намного длиннее, чем на этом изображении, но это не перенос слов. Я установил для lineWrap и wrapStyleWord значение true в поле свойств этого текстового поля, но, похоже, оно не дает никакого эффекта. Затем я попытался установить максимальный размер с помощью поля свойств, и это тоже не имеет никакого эффекта.

  2. Есть ли способ контролировать отступы / поля вокруг компонентов с помощью графического интерфейса NetBeans. Автоматическое размещение, которое оно дает мне для расстояния между компонентами, составляет либо несколько пикселей слишком маленьким, либо два больших. Мне нужно точное размещение компонентов списка в ячейке.

Для справки вот как выглядит панель для скайпа в скайпе (я добавил в красных буквах «Брайан сс» то, как я это сделаю в своей программе). Как вы можете видеть, предложения обертываются, и между ячейками имеется соответствующее пространство. Так кто-нибудь знает, как добиться этого с помощью Swing?

enter image description here

1 Ответ

0 голосов
/ 22 июля 2012

JTextarea не является проблемой.JList устанавливает высоту для каждого ряда.См. JList.setFixedCellHeigth или setPrototypeCellValue

...