DDDEN!SSS, посмотрел я твой код и скажу вот что: твоя главная проблема в том, что потоки не синхронизированы. Дело в том, что поток не запускается мгновенно, а если и предположить, что запускается, все равно свои действия он совершает за какое-то время. А у тебя основной поток запускает дополнительный и сразу же смотрит результат. Разумеется, массив еще даже не успевает создаться. Правильно было бы присвоить свежесозданный поток переменной ( Thread fileConnectionThread = new Thread() { public void run() { ... } }; ), а потом выполнить в основном потоке запуск и ожидание завершения: fileConnectionThread.start(); try { fileConnectionThread.join(); } catch (InterruptedException ex) { ex.printStackTrace(); } В таком случае код будет ждать, когда из файла все считается.
Aвдoтья, думаю, что с этим справится только тот, кто не побоится работать с ИИ. Я вряд ли возьмусь, у меня тут свои проги требуют доработки. Хотя получилась бы веселая шутка: "Malcolm делает козла".
Aвдoтья, на меня-то как раз лучше особо не рассчитывать, потому что я скорее буду дорабатывать в PowerGrasp поддержку RAR или доводить до ума ElementalGIF, это будет нужнее, чем козел.
Сделак метод загрузки байт www.upwap.ru/251902 , нельзяли сделать чтобы temp была временной переменной, тоесть создавалась в томже методе? А если я не знаю сколько файлов отмечено и не подготовлено для каждого файла переменная byte[], то куда можно положить несколько массивов байт?
DDDEN!SSS, разумеется, можно. Если нужно несколько массивов куда-то класть, то клади их в еще один массив (двухмерный) или засовывай в Vector как вариант.
aNNiMON, если я также буду загружать байты, то могут возникать проблемы с тем что поток не будет успевать выполнится. И в моём методе уже есть поток. Не понимаю можноли сделать temp временной переменной.
Malcolm, знать бы еще как. Эта переменная если создаётся в начале метода, то по идеи должна передаватся в run, а потом возращатся из него. У меня вечно ошибки. п.с. с праздником
Пользуясь случаем, спрошу! У меня в одном классе (FileBrowsingCanvas.class) идет ссылка на метод другого класса ( FTK.midlet.LangTranslator(langdata,choosenLang); ) В этом LangTranslator"е форма,текстбокс и CommandListener. В CommandListener"е ведутся все обработки этой формы и текстбокса. Вопрос, как мне снова можно попасть в FileBrowsingCanvas? Если бы не обработчик, я мог бы просто поставить в конце метода return; и всё. А так у меня никак не получается нормально выйти из метода. Только обратно создавать ссыль на FileBrowsingCanvas, но так все настройки (текущий путь, позиция курсора) сбиваются.
20 дек 2008 в 17:56