Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программка обмена сообщениями, последняя строка в видимой части окна 
:(
    Опции темы
inohodec
Дата 5.10.2005, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 1.12.2004

Репутация: нет
Всего: 2



Здравствуйте smile

Написал программку обмена сообщениями (типа ICQ) , но столнулся с проблемой

Окно в котором появляются сообщения не "поднимается" по мере их поступления . т.е. что бы прочитать новые надо делать скролинг smile

Подскажите как заставить его следить за последней строкой и держать ее всегда в видимой части окна
Спасибо smile
PM MAIL   Вверх
LSD
Дата 5.10.2005, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 38
Всего: 538



Или JTextArea.moveCaretPosition(int) или JScrollPane.setViewport(JViewport), второй вариант сложнее, но универсальней.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
inohodec
Дата 5.10.2005, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 1.12.2004

Репутация: нет
Всего: 2



Спасибо , сделал smile
PM MAIL   Вверх
JulT
Дата 6.10.2005, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 7.6.2005

Репутация: нет
Всего: 1



Цитата(LSD @ 5.10.2005, 21:52)
Или JTextArea.moveCaretPosition(int) или JScrollPane.setViewport(JViewport), второй вариант сложнее, но универсальней.

при помощи чего делал, я имею ввиду Timer,JMS или еще че-нибудь
Добавлено @ 09:30
я извиняюсь не того процетировала
PM MAIL   Вверх
inohodec
Дата 6.10.2005, 11:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 1.12.2004

Репутация: нет
Всего: 2



Цитата(JulT @ 6.10.2005, 09:22)
при помощи чего делал, я имею ввиду Timer,JMS или еще че-нибудь

Код

AreaView = new JViewport();
AreaView.setView(result);//result = new JTextArea(3, 50);
scrollPane.setViewport(AreaView);

public void scrollPanel() 
{
     AreaView.setViewPosition(new Point(0, AreaView.getViewSize().height - 
     AreaView.getExtentSize().height));
}


Это сообщение отредактировал(а) inohodec - 6.10.2005, 11:49
PM MAIL   Вверх
JulT
Дата 6.10.2005, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 7.6.2005

Репутация: нет
Всего: 1



где ты сообщения хранишь,при помощи чего передаешь
PM MAIL   Вверх
inohodec
Дата 6.10.2005, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 151
Регистрация: 1.12.2004

Репутация: нет
Всего: 2



Вот кусочки кода , если есть вопросы , пожалуйста smile
Не даю весь код потому как ето 900 строк , чат всего лишь маленькое добавление к программе

Код

result = new JTextArea(3, 50);

result.setCaretPosition(result.getDocument().getLength());
      result.setEditable(false);
      result.setAlignmentX(Component.LEFT_ALIGNMENT);
      result.setBackground(Color.lightGray);
      result.setForeground(new Color(0, 0, 204));
      result.setBorder(new TitledBorder(new EtchedBorder(),
         "Dialog"));

JScrollPane scrollPane = new JScrollPane(result, 
    ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, 
    ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); // 0,6
    
AreaView  = new JViewport();
        AreaView.setView(result);
        scrollPane.setViewport(AreaView);
//...
//---------------------------
connect = new JButton("Send"); 
connect.setMnemonic('S');
connect.addActionListener(this);
//...
//------------------------------------
inputArea = new JTextArea(3, 50);
      inputArea.setAlignmentX(Component.LEFT_ALIGNMENT);
      inputArea.setBackground(Color.lightGray);
      inputArea.setForeground(new Color(204,0,0));
      inputArea.setBorder(new TitledBorder(new EtchedBorder(),
         "Enter your message")); 

scrollPane = new JScrollPane(inputArea, 
    ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, 
    ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); // 0,7
//...
//---------------------------------
  public class BroadcastHandler extends Thread
  {
    BufferedReader broadcastReader;

    public BroadcastHandler()
    {
      try {
        broadcastReader = new BufferedReader(
          new InputStreamReader(server.getInputStream()));
      }
      catch (IOException e){;}//scrollPanel();
    }
    public void run()
    {
      String line;
      try{
        while ((line=broadcastReader.readLine())!= null)
        { 
          result.append(line+"\n");
        }
      }
      catch (IOException e) {;}//scrollPanel();
    }      
  }
//----------------------------
public void  ChatFrame(String host)
   {
      try
      {
          server = new Socket(host,5454);
          pw = new PrintWriter(server.getOutputStream(), true);
      }
      catch(IOException e) 
      { 
          System.out.println("problem connecting to server"); 
      } 
  }   
//----------------------------
public void actionPerformed(ActionEvent evt)
{
    pw.println(inputArea.getText());
    inputArea.setText("");      
    scrollPanel();
}

PM MAIL   Вверх
batigoal
Дата 6.10.2005, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 7
Всего: 151



М
 
JulT
Такие вопросы лучше задавать в отдельном топике, т.к. они к сабжу не относятся.



--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
JulT
Дата 6.10.2005, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 7.6.2005

Репутация: нет
Всего: 1



сорри smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0532 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.