| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Работа с сетью > Работа с Telnet |
| Автор: JulT 29.9.2005, 13:04 | ||
| Всем привет.Нам с братом дали такое задание,написать программу(обязательно GUI),которая будет по тэлнэту запускать команду,потом считывать поток данных и записывать результат в табличку jtable. Как сделать через консоль я знаю, а вот как вести сессию в jTextArea не знаю.Вот как мы сделали через консоль:
|
| Автор: LSD 29.9.2005, 13:38 | ||
А обязательно JTextArea? Может так можно
|
| Автор: JulT 29.9.2005, 13:43 |
| Забыла сказать, что сервер под управлением Линукс Добавлено @ 13:48 Сначала мне нужно создать соединение, после того как оно получено, нужно чтобы в JTextArea а не в консоли вывелись поля длля ввода логина и пароля, т.е. вот так: lohin: user: Потом я ввожу команду, результатом которой является данные которые сгрупированы по столбикам и строчкам, далее мне нужно эти данные записать в JTable |
| Автор: JulT 29.9.2005, 14:26 |
| HEEEEEEEEEEEEEEEEELP!!!!!!!!!!!!!!!! |
| Автор: Metal_Heart 29.9.2005, 16:25 | ||
JulT, но ведь это получается та же "консоль", но ведь в GUI обычно так не делают. Можно сделать так - возникает окошечко (модальное), в котором предлагается ввести логин и пароль, затем это окошечко закрывается, а в JTextArea указываешь, что сессию открыл пользователь такой-то. Под JTextArea, (где нибудь снизу) расположить "JTextField", который и будет служить для ввода команд. А сам "JTextArea" использовать только для истории ввода команд, ответов на эти команды (типа LOG). как тебе такой вариант? |
| Автор: LSD 29.9.2005, 22:27 | ||
| JulT я так понял тебе надо реализовать аналог консоли операционной системы с помощью JTextArea, так? Если да то у меня есть пара идей как это реализовать
Какие разделители используются пробелы или точка с запятой? |
| Автор: JulT 30.9.2005, 08:37 | ||||
Данные представлены так как на рисунке. Да в виде аналога консоли ОС А что за идеи, прошу вас поделиться |
| Автор: LSD 30.9.2005, 09:23 | ||||
Такую строку 1 3 10.100.100.1 23 ms достаточно легко распарсить:
Дальше можно распарсить числа Integer.parseInt(elem), а можно и оставить как есть, по желанию. А примерчик с эмуляцией консоли я чуть по позже выложу. |
| Автор: JulT 30.9.2005, 10:22 | ||||||
Буду ждать |
| Автор: LSD 30.9.2005, 15:09 | ||
Вот эдакая псевдо консоль:
работает следующим образом, у документа есть точка редактировать до которой нельзя, с помощью DocumentFilter мы запрещаем редактирование текста до этой точки. Т.е. что было уже введено пользователем (по нажатию Enter) и то что было напечатанно терминалом appendText() помечается как не редактируемое. |
| Автор: JulT 3.10.2005, 11:17 | ||||
Пытаюсь откомпилить, он мне пишет cannot access...... и подчеркивает import javax.swing.text.DocumentFilter.FilterBypass; |
| Автор: LSD 3.10.2005, 12:01 |
| JDK 1.4 или старше? Можно поробовать удалить import javax.swing.text.DocumentFilter.FilterBypass;, и заменить везде FilterBypass на DocumentFilter.FilterBypass. |