200 stream == null)

201 {

202 return -1;

203 }

204

205 try

206 {

207 char c;

208 while (true)

209 {

210 // Пропускаем символы новой строки.

211 while (true)

212 {

213 с = (char) stream.read ();

214 if (c == r\n')

215 {

216 continue;

217 }

218 break;

219 }

220

221 if (lisWhiteSpace(c) Si!isDelimeter(c))

222 {

223 key.append(c);

224 }

225

226 // Пропускаем впередиидущий пробел.

227 while (true)

228 {

229 с = (char) stream.read();

230 if (isWhiteSpace (c))

231 {

232 continue;

233 }

234 break;

235 }

236

237 if (lisWhiteSpace(c) S&!isDelimeter(c))

238 {

239 key.append (с);

240 }

241

242 // Считываем ключ.

243 while (true)

244 {

245 с = (char) stream.read();

246 if (isWhiteSpace(c) II isDeliraeter(c))

247 {

248 break;

249 }

250 else

251 {

252 key.append(c);

253 }

254 }

255

256 // Пропускаем пробел, идущий перед или

257 // после символа.

258 while (true)

259 {

260 с = (char) stream.read();

261 if (isWhiteSpace(c) II isDelimeter(c))

262 {

263 continue;

264 }

265 value.append(c);

266 break;

267 }

268

269 // Считываем остальную часть значения метки.

270 while (true)

271 {

272 с = (char) stream.read();

273 if (c == \n')

274 {

275 break;

276 }

277 else

278 {

279 value.append(c);

280 }

281 }

282 break;

283 }

284 }

285 catch (lOException ioe)

286 {

287 ioe.printStackTrace();

288 return -1;

289 }

290 return 0;

291 }

292

293 /**

294

295 */

296 private boolean isWhiteSpace(char c)

297 {

298 if (c == И с == \t')

299 {

300 return true;

301 }

302 else

303 {

304 return false;

305 }

306 }

307

308 /**

309

310 */

311 private boolean isDelimeter(char c)

312 {

313 if (c ==:)

314 {

315 return true;

316 }

317 return false;

318 }

319

320 /**

321 Выдает значение, связанное с указанным

322 ключом из пакета ресурсов приложения.

323

324 @param key — ключ пары «ключ-значение».

325

326 @выдает значение, связанное с

327 указанным ключом.

328 */

329 private String getResource(String key)

330 {

331 if (resources == null)

332 {

333 return null;

334 }

335 return (String) resources.get (-key);

336 }

337

338 /**

339 Прекращает выполнение. Запрашивает реализацию

340 на завершение данного MID-лета.

341 */

342 public void quit()

343 {

344 notifyDestroyed ();

345 }

346

347 public void destroyApp(boolean destroy)

348 {

349

350 }

351

352 public void pauseApp()

353 {

354

355 }

356 }

Листинг 9.6. Класс HelloForm2 теперь использует API I18Nderao2.getResource() для извлечения локализованных ресурсов

1 import javax.microedition.midlet.MIDlet;

2

3 import javax.microedition.Icdui.Alert;

4 import javax.microedition.Icdui.AlertType;

5 import javax.microedition.Icdui.Command;

6 import javax.microedition.Icdui.CommandListener;

7 import javax.mi'croedition. Icdui.Display;

8 import javax.microedition.Icdui.Displayable;

9 import javax.microedition.Icdui.Form;

10

11 /**

12 Данный класс определяет Form, которая отображает некоторый

13 простой текст и меню команд. Цель данного класса

14 продемонстрировать интернационализацию и локализацию

15 видимых пользователю атрибутов. Он работает с классом

16 I18NDemo2.

17 */

18 public class HelloForm2 extends Form

19 {

20 // Заголовок даннвй Form, устанавливаемый по умолчанию.

21 private static final String DEFAULTJTITLE =

22 "Hello, World";

23

24 // Блок прослушивания команд, который обрабатывает

25 // командные события в данной Form.


Логин
Пароль
Запомнить меня