Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° J2MeΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 50

Автор Автор нСизвСстСн

15 Π²ΠΈΠ΄ΠΈΠΌΡ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². Класс ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚

16 Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ рСсурсы ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

17 управлСния прилоТСниями.

18 */

19 ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ HelloForm дополняСт Form

20 {

21 // Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π΄Π°Π½Π½ΠΎΠΉ Form, устанавливаСмый ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

22 private static final String DEFAULT_TITLE =

23 "Hello, World";

24

25 // Π‘Π»ΠΎΠΊ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚

26 // ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹Π΅ события Π² Π΄Π°Π½Π½ΠΎΠΉ Form.

27 private MyCommandListener cl = new

28 MyCommandListener ();

29

30 //. ЭкзСмпляр дисплСя, связанный с

31 // Π΄Π°Π½Π½Ρ‹ΠΌ MID-Π»Π΅Ρ‚ΠΎΠΌ.

32 Display display;

33

34 // Бсылка Π½Π° связанный с Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ

35 // ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ MID-Π»Π΅Ρ‚Π°.

36 I18NDemo midlet;

37

38 // Π£Π²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠ΅ Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π°

39 // Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π°Π½Π½ΠΎΠΉ Form.

40 Alert alert;

41

42 // ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Π΅ Π² Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅.

43 private Command showAlert;

44 private Command sayHi;

45 private Command cancel;

46 private Command exit;

47 private Command help;

48 private Command item;

49 private Command ok;

50 private Command screen;

51 private Command stop;

52

53 /**

54 ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ No-arg. УстанавливаСт Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

55 для Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹.

56 */

57 HelloForm()

58 {

59 this(DEFAULT_TITLE);

60 }

61

62 /**

63 ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€.

64

65 @param title β€” Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Form.

66 */

67 HelloForm(String title)

68 {

69 super(title);

70

71 midlet = IISNDemo.get Instance()

72

73 // ДобавляСт строковый элСмСнт Π² Ρ„ΠΎΡ€ΠΌΡƒ.

74 String msg = midlet.getResource("greeting");

75 append(msg);

76

77 display = Display.getDisplay(midlet);

78

79 // ДобавляСт MyCommandListener Π² Form для ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ

80 // события наТатия клавиши Β«BackΒ», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ

81 // ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΡƒΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ Alert.

82 setCommandListener(cl);

83

84 showAlert = new

85 Command(midlet.getRe source("alert"),

86 Command.SCREEN, 1);

87 addCommand(showAlert);

88

89 sayHi = new.

9 Β°Command(midiet.getResource("sayhi"),

91 Command.SCREEN, 1);

92 addCommand(sayHi);

93

94 cancel = new

95 Command{midlet.getResource("cancel"),

96 Command. SCREEN, 1);

97 addCommand(cancel);

98

99 exit = new

10 Β°Command(midlet.getResource("exit"),

101 Command.SCREEN, 1);

102 addCommand(exit);

103

104 help = new

105 Command(midlet.getResource("help"),

106 Command.SCREEN, 1);

107 addCommand(help);

108

109 item = new

11 Β°Command(midiet.getResource("item"),

111 Command.SCREEN, 1);

112 addCommand(item);

113

114 ok = new

115 Command(midlet.getResource("ok"),

116 Command.SCREEN, 1);

117 addCommand(ok);

118

119 screen = new

12 Β°Command(midlet.getResource("screen"),

121 Command.SCREEN, 1);

122 addCommand(screen);

123

124 stop = new

125 Command(midlet.getResource("stop"),

126 Command.SCREEN, 1);

127 addCommand(stop);

128 }

129

130 // Π”Π°Π½Π½Ρ‹ΠΉ класс просто ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΡŽ

131 // ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ЭкзСмпляр HelloForm

132 // устанавливаСт экзСмпляр Π΄Π°Π½Π½ΠΎΠ³ΠΎ класса ΠΊΠ°ΠΊ

133 // свой Π±Π»ΠΎΠΊ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄. ЭкзСмпляр

134 // ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π΅ провСряСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π°

135 // просто ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅Ρ‚ модальноС Ale ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅,

136 // Ρ‡Ρ‚ΠΎ экранная клавиша Π±Ρ‹Π»Π° Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

137 private class MyCoramandListener

138 implements CommandLister.er

139 {

140 public void commandAction(Command c,

141 Displayable d)

142 {

143 String title =

144 midlet.getResource("alert_title");

145 String msg = null;

146

147 if (c == showAlert)

148 {

149 msg = midlet.getResource("alert_text");

150 alert = new Alert(title,

151 msg,

152 null, AlertType.INFO);

153 alert.setTimeout(Alert.FOREVER);

154 display.setCurrer.t (alert, HelloForm.this);

155 }

156 else if (c == sayHi)

157 {

158 alert = new Alert("Button pressed",

159 msg,

160 r.ull, AlertType.INFO);

161 alert.setTimeout(Alert.FOREVER);

162 display.setCurrent(alert, HelloForm.this);

163 }

164

165 if (c == exit)

166 {

167 IISNDemo.get Instance(). destroyApp (true);

168 }

169 }

170 }

171 }


ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² схСмС поиска, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ для нахоТдСния Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… строк Π² Ρ„Π°ΠΉΠ»Π΅ JAD. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ опрСдСляСмый ΠΌΠ΅Ρ‚ΠΎΠ΄ getResource (String key), Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π² строках с 103 ΠΏΠΎ 115, Π½Π° самом Π΄Π΅Π»Π΅ опрСдСляСт ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ схСму поиска. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ рСсурс, ΠΌΠ΅Ρ‚ΠΎΠ΄ getResource (String key) создаСт имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡ‰Π΅Ρ‚ сам Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚.

НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π²Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² строках 84 ΠΈ 85, Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ строку Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Form, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉΡΡ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

String formTitle = getResource("title");

form = new HelloForm(formTitle);


ΠœΠ΅Ρ‚ΠΎΠ΄ создаСт ΠΏΠΎΠ»Π½ΠΎΠ΅ имя Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°, объСдиняя Ρ‚Ρ€ΠΈ строки: 118NDemo β€” прСфикс Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° для Π΄Π°Π½Π½ΠΎΠ³ΠΎ прилоТСния, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° рСсурса Π±Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΉΡΡ Π² зависимости ΠΎΡ‚ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ настройки ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ настройки. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ строки title являСтся ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° рСсурса, Π° Π½Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Ρ„ΠΎΡ€ΠΌΡ‹.

Π’ строкС 36 MID-Π»Π΅Ρ‚ опрСдСляСт прСфикс Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° I18NDemo-. ΠœΠ΅Ρ‚ΠΎΠ΄ startApp() ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ контСкстС Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ настройки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ исполняСтся ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ· систСмного свойства microedition.locale ΠΈ сохраняСт Π΅Π³ΠΎ ΠΊΠ°ΠΊ экзСмпляр Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°.

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ HelloForm ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π²Ρ‹Π΄Π°Π½Π½ΠΎΠ΅ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ getResource(), ΠΊΠ°ΠΊ Π΅Π³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ. Класс HelloForm Π² листингС 9.3 повторяСт этот сцСнарий. Он просто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ getResource() для поиска Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ всСх тСкстов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ Π²ΠΎ врСмя исполнСния прилоТСния.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ MIDP Π±ΡƒΠ΄ΡƒΡ‚, скорСС всСго, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ настройку, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±ΡƒΠ΄Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠ΅ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠΉ ссылку Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ настройки, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ, ΠΊΠ°ΠΊ Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ вашС устройство, вмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ· свойств систСмы.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² создании Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… вСрсий Ρ„Π°ΠΉΠ»Π° JAD прилоТСния Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ каТдая вСрсия содСрТала Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ настройки. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ JAD для Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ³ΠΎ контСкста Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ настройки. ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Π°ΠΌ понадобится ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ контСкст локальной настройки, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½, ΠΈΠ»ΠΈ просто мСстныС настройки ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

Π’ листингС 9.2 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ систСмноС свойство microedition.locale для извлСчСния Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ настройки для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°ΠΊΡ†Π΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° понятии динамичСски опрСдСляСмого контСкста Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ настройки ΠΈ рСсурсов, связанных с контСкстами Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк. Π Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ рСсурсов для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ пониманию вашСй Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ вашС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π±ΠΎΠ»Π΅Π΅ восстанавливаСмым. НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ, ΠΊΠΎΠ³Π΄Π° устройства станут Π±ΠΎΠ»Π΅Π΅ ΠΌΠΎΡ‰Π½Ρ‹ΠΌΠΈ, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ MIDP смогут ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ мноТСство Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк. Когда это ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² листингС 9.2, станСт Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

Взглянув Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ getResource(), ΠΏΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² строчках с 103 ΠΏΠΎ 115, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ MIDlet.getAppProperty() для извлСчСния рСсурсов ΠΈΠ· Ρ„Π°ΠΉΠ»Π° дСскриптора прилоТСния ΠΈ Ρ„Π°ΠΉΠ»Π° манифСста. Если Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ сущСствуСт Π² ΠΎΠ±ΠΎΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… с Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΊΠ»ΡŽΡ‡Π°, Ρ‚ΠΎΠ³Π΄Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ извлСкаСтся ΠΈΠ· Ρ„Π°ΠΉΠ»Π° дСскриптора прилоТСния ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ»Π΅ манифСста игнорируСтся. Если Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° ΠΈΠ»ΠΈ Ссли для ΠΊΠ»ΡŽΡ‡Π° Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½ΠΎ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ значСния, выдаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ноль. Если Π²Π²ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, сбрасываСтся NullPointerException.

ЗначСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π² Ρ„Π°ΠΉΠ»Π΅ JAD (ΠΈΠ»ΠΈ манифСста) Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символьной ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, которая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π½ΡƒΠΆΠ½Ρ‹ΠΉ язык. БущСствуСт Π΄Π²Π° способа выполнСния этого:

ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символьной ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ для языка Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ настройки. Бимвольная ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠΉ, Ρ‡Ρ‚ΠΎ соотвСтствуСт Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄Π½ΠΎΠΌΡƒ лишь Π½ΡƒΠΆΠ½ΠΎΠΌΡƒ языку, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, LJTF-8. ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π£Π½ΠΈΠΊΠΎΠ΄, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ \u4EA9. Π€Π°ΠΉΠ» всС Ρ€Π°Π²Π½ΠΎ состоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· символов ASCII, Π½ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡƒΠ½ΠΈΠΊΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ любой символ любого письмСнного языка.

Листинг 9.2 Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ английской ΠΈ французской Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… настроСк. Бимвольная ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° ISO8859-1 ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ английский ΠΈ французский Π°Π»Ρ„Π°Π²ΠΈΡ‚Ρ‹. Если Π²Ρ‹ ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° языки, Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ сСмСйством ISO8859 (китайский, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€), Π²Π°ΠΌ придСтся ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠΉ символьной ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ.

Если Π²Ρ‹ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ описанных ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² (ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символьной ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ для языка Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ настройки), Π²Π°ΠΌ понадобится Π½Π°ΠΉΡ‚ΠΈ тСкстовой Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Π²ΠΎΠ΄Π° китайского языка ΠΈ записываСт символы Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ. Π›ΠΈΠ±ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡƒΠ½ΠΈΠΊΠΎΠ΄Π° Java для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΡƒ кодирования ΡƒΠ½ΠΈΠΊΠΎΠ΄Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ символа Π² вашСй строкС. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ класс Java.lang.String Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ строковыС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡƒΠ½ΠΈΠΊΠΎΠ΄Π°. Π’Π°ΡˆΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Ρ‚Π΅ΠΌ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ значСния Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ String.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ°Π½Π΅Π»ΠΈ Settings J2MEWTK. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ WTK Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Π²ΠΎΠ΄ Π½Π΅-ASCII тСкста, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ английский Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ ввСсти Π½Π΅ английскиС символы, Π²Π°ΠΌ придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ тСкстовой Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ для Π²Π²ΠΎΠ΄Π° символов нСпосрСдствСнно Π² Ρ„Π°ΠΉΠ» JAD. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²Π²ΠΎΠ΄Π° (IME) для Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ языка, ΠΈΠ»ΠΈ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡƒΠ½ΠΈΠΊΠΎΠ΄Π°.