![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| sidiakin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 16.10.2005 Репутация: нет Всего: нет |
Подскажите пожалуйста! Вот пример:
Файл html, class, img.gif находяться на диске. Браузер картинку отображать не хочет, а javaviewer открывает пустое окно и снизу пишет "Applet not initialized". Подскажите, что не так? |
|||
|
||||
| dobrolub |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: нет Всего: 16 |
в html попробуй указать свойства codebase и archive, и пусть они оба специфицируют текущую директорию
в аплете для imageUrl лучше использовать getCodeBase() + "/img.gif";
поглядеть на аплет можно appletviewer (ом) - он стартует с консолью (для Exceptions appletviewer test.html Это сообщение отредактировал(а) dobrolub - 29.1.2010, 20:47 |
||||
|
|||||
| sidiakin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 16.10.2005 Репутация: нет Всего: нет |
Все заработало после добавления getCodeBase(). Спасибо. Я этот метод уже пробовал, но видимо еще не разобрался в прогр. Java . В справке я выяснил что это public метод типа URL и все. вот я и пробовал getCodeBase(img.gif). Я даже прочитать это не могу. Поясните пожалуйста, как это работает. В справке покопался, но ничего не понял. Подскажите, какой конструктор используется при создании URL и как работает вызов метода со знаком + ?
Это сообщение отредактировал(а) sidiakin - 30.1.2010, 09:14 |
|||
|
||||
| dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: нет Всего: 16 |
Ура!
|
|||
|
||||
| sidiakin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 16.10.2005 Репутация: нет Всего: нет |
Т.е. я создаю объект URL с конструктором URL(String), где стринг это адрес хоста. А если я подставляю getCodeBase(), то он передает тек. адрес до файла .class. И если у меня файл на C:\ то он и возр. этот путь? А как же безопасность?
|
|||
|
||||
| dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: нет Всего: 16 |
У URL несколько конструкторов, в том числе те, что принимают просто String. getCodeBase() – метод аплета возвращает String, к которому добавляется "/img.GIF". Когда аплет загружается с сервера, JVM-плагин для браузера читает откуда загрузился аплет и устанавливает это значение для свойства апплета codeBase. В данном случае это директория. URL сконструированный только с img.GIF не имеет точки отсчёта. CodeBase в этом случае даёт такую точку отсчёта. Например, если html файл лежит в директории c:\temp то URL будет "file:///c:/temp", a URL картинки "file:///c:/temp/img.GIF.
Если ещё не обзавелись книжкой Брюса Эйккеля - скачайте или купите. Очень хорошая книга. http://forum.vingrad.ru/forum/topic-84146.html Добавлено через 5 минут и 14 секунд А безопасность обеспечивается тем, что по-умолчанию JVM не пустит в директории выше codebase. To-есть, из директории c:/temp выше нельзя подняться, в том числе с помощью .. C:\temp\..\img.GIF. – не пустит. c:\ - тоже не должен быть виден, если только не прописать расширенный доступ в файле разрешений. Удачи! |
|||
|
||||
| sidiakin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 16.10.2005 Репутация: нет Всего: нет |
Подскажите, как читать эту строку:
Float.valueOf(String).floatValue(); Float.valueOf(String) - это понятно. valueOf(String) преобразует строку к типу Float. Мне непонятно, как мы вызываем 2-а метода через точку. Это сообщение отредактировал(а) sidiakin - 31.1.2010, 09:58 |
|||
|
||||
| dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: нет Всего: 16 |
Float.valueOf() возвращает объект типа java.lang.Float. a .valueOf() уже вызывается на объекте типа java.lang.Float(). В длинной форме это можно записать как:
//object Float n = Float.valueOf("123.123"); //primitive float f = n.floatValue(); |
|||
|
||||
| sidiakin |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 90 Регистрация: 16.10.2005 Репутация: нет Всего: нет |
Вот, как Вы написали мне понятно. А то, что можно через точку я не знал.
В книгах пишут: доступ к членам класса осущ. через точку. Вот у меня и сложилось впечатление, что в методе valueOf() есть метод floatValue(). Эйккеля уже читаю, но до этого еще не дашел. Это сообщение отредактировал(а) sidiakin - 31.1.2010, 10:04 |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Апплеты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |