|
|
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
Здравстуйте! По мере доработки диплома у меня возникли кое-какие проблемы. Введение У меня есть дерево на сервере, в качестве узлов - объекты собственного класса, ему так же назначен собственный рендерер. Это дерево должно отобразиться у клиента. После долгих мук в попытке передать само дерево JTree (приходит только схема, то он начинает ругаться и пр.), было решено передавать его модель. На клиенте у меня хранится класс узлов той же компиляции (или как это называется), что и на сервере (иначе ругается). Дереву, созданному по пришедшей модели, назначается собственный рендерер. Ну это так, к сути не особо относится. Теперь самое интересное: на сервере Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. при подключении клиента ему сразу отсылается модель дерева. В первый раз она "свежая". Далее подключается еще один клиент, соответствующий ему узел в дереве обновляется ( ну типа "активный" становится) обоим высылается новая модель, к новому юзеру она приходит опять -таки "свежая", а вот первому клиету хоть и приходит модель (то есть вызывается) Код: plaintext Я даже не знаю, с чем это может быть связано. Есть этому разумное объяснение??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 11:22 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
Ладно, вот еще вопросики попроще 1. Кусок кода: Код: plaintext 1. 2. 3. 4. 5. 6. Даже если так String s =""+UGET_JOIN+num_room +...; Получается что чар и инт суммируется и не ругается совершенно Почему?? 2. И еще что лучше (не с точки плохого стиля программирования): делать кучу проверок или ловить исключения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 14:36 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
1. char приводится к int ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 14:39 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
adf Даже если так String s =""+UGET_JOIN+num_room +...; Получается что чар и инт суммируется и не ругается совершенно Почему?? Враньё. 2. И еще что лучше (не с точки плохого стиля программирования): делать кучу проверок или ловить исключения? Можно грамотно сделать и то и другое, зависит от задачи и соглашений между программистами. А можно проверять не понятно что и кидать чем попало - и будет плохо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 14:44 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUsМожно грамотно сделать и то и другое, зависит от задачи и соглашений между программистами. А можно проверять не понятно что и кидать чем попало - и будет плохо :) плюс к этому - некоторые действия требуют перехвата исключения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 14:59 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs adf Даже если так String s =""+UGET_JOIN+num_room +...; Получается что чар и инт суммируется и не ругается совершенно Почему?? Враньё. в смысле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 14:59 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs adf Даже если так String s =""+UGET_JOIN+num_room +...; Получается что чар и инт суммируется и не ругается совершенно Почему?? Враньё. Почему враньё? Работать начало когда туСтринг сделала, это меня очень удивило, я глазам не поверила, когда эта конструкция не сработала (Я конечно не могу быть на 100% уверена, но по-моему так все и было) NotGonnaGetUs 2. И еще что лучше (не с точки плохого стиля программирования): делать кучу проверок или ловить исключения? Можно грамотно сделать и то и другое, зависит от задачи и соглашений между программистами. А можно проверять не понятно что и кидать чем попало - и будет плохо :) То есть это нормально, ловить? Там никаких потерь в производительности нет? Эт' хорошо. Раньше я в толк взять не могла, зачем нужна такая конструкция, особенно когда на С++ че-то делала, сейчас без нее жить не могу. Это как старая история про Goto, во всех книжках рекомендуют не использовать, а некоторые все-равно используют (ну я например). Хорошо что у ехсептиона нет такой дурной славы (наверно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 15:03 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
А.Грасоff™ JE NotGonnaGetUs adf Даже если так String s =""+UGET_JOIN+num_room +...; Получается что чар и инт суммируется и не ругается совершенно Почему?? Враньё. в смысле? В прямом. "" + '4' + 35 = "435". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 15:04 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs А.Грасоff™ JE NotGonnaGetUs adf Даже если так String s =""+UGET_JOIN+num_room +...; Получается что чар и инт суммируется и не ругается совершенно Почему?? Враньё. в смысле? В прямом. "" + '4' + 35 = "435". у нее "" в конце стоял :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 15:09 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
А.Грасоff™ JE NotGonnaGetUs А.Грасоff™ JE NotGonnaGetUs adf Даже если так String s =""+UGET_JOIN+num_room +...; Получается что чар и инт суммируется и не ругается совершенно Почему?? Враньё. в смысле? В прямом. "" + '4' + 35 = "435". у нее "" в конце стоял :) Читай сообщение от adf " сегодня, 14:36 "; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 15:21 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
Ну-ну Кто бы мне еще с главным вопросом так помог. Или тоже скажете, что я что-то не туда написала и не с той стороны приравняла (Это вполне вероятно) Походу здесь никто с деревьями не работал Че делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 15:35 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
adfНу-ну Кто бы мне еще с главным вопросом так помог. Или тоже скажете, что я что-то не туда написала и не с той стороны приравняла (Это вполне вероятно) Походу здесь никто с деревьями не работал Че делать? Что такое переменная tree? Возможно первое созданное дерево отображается на панели, а всё что приходит потом, ты не добавляешь в swingовскую иерархию объектов. Мало инфы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 15:39 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
это у меня дерево в сплит панели (это совершенно не важно) после того как приходит модель, я создаю по нему совершенно новое дерево, и JOptionPane.showMessageDialog'ом смотрю что пришло, даже не присваивая основной переменной - это старый вариант! Ну потом я конечно все это в сплит засовываю: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Может с потоком чего-то не то? Остальное все нормально передается :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 15:54 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
значит нужно разбираться как шлёшь и как читаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 16:08 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
что значит "Остальное все нормально передается :(" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 16:09 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
Поток стандартный, через сокет Код: plaintext Строки и объекты передаются нормально (этого следовало ожидать), а еще следовало ожидать что и модель на входе и на выходе будет одинаковой... Буферизация тут не при чем? ( Глупо наверно, но просто я уже не знаю что и думать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 16:17 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
adfПоток стандартный, через сокет Код: plaintext Строки и объекты передаются нормально (этого следовало ожидать), а еще следовало ожидать что и модель на входе и на выходе будет одинаковой... Буферизация тут не при чем? ( Глупо наверно, но просто я уже не знаю что и думать) Добавь в модель поле с уникальным идентификатором. Перед отправкой выводи его в консоль и принимая выводи его в консоль. Если действительно передаётся один объект, а принимается другой - то это НЛО. Переданный объект никуда исчезнуть не может. Прочитанный назад не будет в ставлен, если специально не постараться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 16:28 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
NotGonnaGetUs Добавь в модель поле с уникальным идентификатором. Ээ как? Мне вместо DefaultTreeModel написать так чтоли Код: plaintext 1. 2. 3. NotGonnaGetUs Перед отправкой выводи его в консоль и принимая выводи его в консоль. Если действительно передаётся один объект, а принимается другой - то это НЛО ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 16:39 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
да хоть так. быстрее обнаружится, где кривой код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 16:44 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
Еще щас пойду научного руководителя озадачу... Попробую и как ты говоришь отослать. Об успехах (или неудачах) еще напишу С надеждой что это мой код кривой и я просто где-то забыла "" прибавить с нужного места ADF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 16:52 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Речь на сей раз пойдет не о деревьях, а о типе byte... из ИнтернетАдреса можно извлечь адрес машины это массив из 4 объектов byte. значение byte от 0 до 255 (так ведь?) Теперь такая штука: У меня есть поле Туда вводится айпи адрес, я разбираю строку на подстроки в массив, и пытаюсь так сделать byt[j] = Byte.parseByte(str[j]); он у меня разбирает нормально до примерно 127, а вот 192 и пр. - проблема. Вылезает NumberFormatException. И Если вывести этот byt[j], там отрицательные числа Если я сначала в инт, потом в байт, он более менее нормально их переводит, то есть выводится 192, но потом опять эта ошибка вылезает Что тут знаковое, что беззнаковое? Почему так происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 09:50 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
В Java все типы знаковые. Очень смешно, что "он у меня разбирает нормально до примерно 127". Особенно понравилось слово "примерно" :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 10:02 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
всхлипВ Java все типы знаковые. Очень смешно, что "он у меня разбирает нормально до примерно 127". Особенно понравилось слово "примерно" :) :) Примерно, потому что для 127.0.0.1 он проходит, когда тестирую на одной машине, а когда для сети, мне надо 192.168.0.1 например, такое число он не дает мне вводить. Конечно стоило бы поставить эксперимент, типа, когда он начинает вылетать. Инт - это решение данной проблемы - да. Но мне нужен именно байт У меня идентификация машин идет по айпи, полученным Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 10:10 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
try it :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 10:28 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
Спасибо, сегодня ночью попробую, спасибо! Большие благодарности - завтра, если зайдете :) Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 10:39 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
adf Код: plaintext 1. 2. :) Наверное, книг совсем не читаешь :) Вообще-то это есть в (почти) каждом языке - "побитовые логические операции". Вот прямо по этим словам и можешь искать в оглавлении книг :) Это все-таки теория, не знать которую просто неудобно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 10:46 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
B.Eckel, Thinking In Java Битовые операторы Битовые операторы позволяют вам манипулировать индивидуальным битом в интегрированном примитивном типе данных. Битовые операторы вычисляются по Булевой алгебре над соответствующими битами двух аргументов для произведения результата. Битовые операторы пришли из никоуровневой ориентации C; вы будите часто напрямую манипулировать оборудованием и устанавливать биты в регистрах апаратуры. Java изначально была разработана для встраивания в телевизор, так что низкоуровневая ориентация все еще чувствуется. Однако вы, вероятно, не будете часто использовать битовые операции. Битовый оператор И (&) производит единицу в выходном бите, если оба входных бита были единицами; в противном случае результат - ноль. Битовый оператор ИЛИ (|) производит единицу в выходном бите, если один из входных бит - единица, и производит ноль, если оба бита - нули. Битовое ИСКЛЮЧАЮЩЕЕ ИЛИ, или XOR (^), производит единицу в выходном бите, если один или другой входной бит - единица, но не оба. Битовая операция НЕ (~, также называемый оператором дополнения) - это унарный оператор; он принимает только один аргумент. (Все остальные битовые операторы - бинарные.) Битовое НЕ на выходе производит бит, противоположных входящему — единицу, если входящий бит - ноль, и ноль, если входящий бит - единица. Битовые операторы и логические операторы используют одинаковые символы, так что полезно иметь мнемоническуе схему, которая поможет вам запомнить значения: так как биты “малы”, то используется только один символ в битовых операторах. Битовые операторы можно комбинировать со знаком = для соединения операции и присвоений: &=, |= и ^= являются допустимыми. (Так как ~ - это унарный оператор, он не может комбинироваться со знаком =.) Тип boolean трактуется как однобитное значение, так что это кое в чем отличается. Вы можете выполнять битовое И, ИЛИ и XOR, но вы не можете выполнять битовое НЕ (предположительно для предотвращения путаницы с логическим НЕ). Для булевских битовых операций имеется то же эффект, что и для логических операций, за исключением того, что они не подвержены короткому замыканию. Также, битовые операции на булевыми типами, включают логический оператор XOR, который не включен в список “логических” операторов. Вы предохранены от использования булевских типов в выражениях сдвига, которые описаны далее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 10:51 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
Ба, этож Эккель! Есть у меня эта книжка, только надо у знакомых отжать... Правда, даже если я и читала этот параграф (а по-моему я его просматривала), я бы все равно не знала куда его применить. И сейчас удивляюсь, каким это сюда боком... А книг я действительно мало читала. Честно, я никогда не сталкивалась с такой ситуацией, где я использовала бы битовые операции. В универе нам вскользь говорили что есть такие, но нам так же сказали, что это вам не нужно, поэтому мы это и не будем проходить. И не проходили. Это есть пробел в моих знаниях. Я понимаю, вы об этом узнали до того, как смогли выговорить слово "самообразование". Я не знаю, в каких ситуациях это полезно... Прям всю меня застыдил... :( Господи, я не ж знала, что надо использовать & 255! Мне просто нет прощения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 11:10 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
Да ладно :) С каждым бывает :) Я вот вчера часа два не понимал - отчего ж у меня данные не суммируются. А всего-то вместо знака "+" стоял знак "=". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 11:21 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
:) Знакомая ситуация. После того как такую штуку обнаруживаешь, просто такая злость разбирает, что и словами не описать. Выдержки всем нам... Может в двух словах про & 255 напишешь (и про byte)? Хорошая цитата: чтобы правильно задать вопрос, надо знать хотя бы часть ответа ... Эээ как бы мне вопрос сформулировать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 11:31 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
А что рассказывать? byte - тип, как ты уже знаешь - знаковый. диапазон чисел: -128...127. Размер: 8 бит. int, диапазон: -2 31 ...2 31 - 1. Размер: 32 бита. & - операция 'И'. Ее действие: ABA & B000010100111 Что еще? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 11:49 |
|
||
|
Диплом и сопутствующие вопросы
|
|||
|---|---|---|---|
|
#18+
Да! Да, постой!! :) Это я понимаю (вроде) //Табличка красивая, кстати, тут тэги чтоли можно писать?! А вот что это значит myByte & 255?? Раз байт от -128 до 127 Почему он допускает и до 255? Как определить знаковый он или нет, в С все было просто (типа без знака его сделал и все), а здесь ??? Почему от парс делает в знаковый, а гетИнетАдресс выдает беззнаковый?? Ничего не понимаю... Хелп! Хелп! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 12:03 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2152434]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
98ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 252ms |
| total: | 497ms |

| 0 / 0 |
