Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / getLocale() / 8 сообщений из 8, страница 1 из 1
12.08.2005, 11:40
    #33212463
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
getLocale()
Всем привет!

Вот такой есть класс. Проблема такая: locale = null- не пойму почему????

Код: 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.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
 import  java.beans.VetoableChangeListener;
 import  java.beans.PropertyChangeEvent;
 import  java.beans.PropertyVetoException;
 import  java.util.Date;
 import  java.util.Locale;
 import  java.util.Arrays;
 import  java.text.SimpleDateFormat;
 import  java.beans.*;
 import  java.text.DateFormatSymbols.*;

 public   class  SetUpPeriod
{
     private  IntTextBean intPeriod;
     private   static   int  gg;  
    String povP="<html><p align='center'><b><font color='2655' face='Verdana'>";
    String povK="</font></b></p></html>";
     private  Locale locale;

     public  SetUpPeriod(IntTextBean period)
    {
        intPeriod=period;
        intPeriod.addVetoableChangeListener( new  VetoableChangeListener()
        {
             public   void  vetoableChange(PropertyChangeEvent event)  throws  PropertyVetoException
            {
                 int  v = ((Integer)event.getNewValue()).intValue();
                 final  Locale loc = getLocale();
                locale = getLocale();  
System.out.println("locale= "+locale);
                Date today;
                String result;
                SimpleDateFormat formatter;
System.out.println("intPeriod= "+intPeriod);

                formatter =  new  SimpleDateFormat("dd.MM.yyyy", locale);
                today =  new  Date();                       
                result = formatter.format(today).trim(); 
                String rik = result.substring( 9 , 10 );
                String mis = result.substring( 3 , 5 );
                 int  rik_1 = Integer.parseInt(rik);   
                 int  rik_2 = rik_1 -  2 ;               
                String per1 = "3"+rik_1+mis;         
                String per2 = "3"+rik_2+"01";        
                 int  period1 = Integer.parseInt(per1);
                 int  period2 = Integer.parseInt(per2);
                String[] mount = {"01","02","03","04","05","06","07","08","09","10","11","12"};
                String vv = ((Integer)event.getNewValue()).toString().trim();
                 if  (vv.length()>= 4 )
                {
                    Arrays.sort(mount);
                    gg = Arrays.binarySearch(mount, vv.substring( 2 , 4 ));
                }
                 if  (v > period1 || v < period2)
                {
                    String pov1 = povP+"Введено невірний період: "+v+"."+povK;
                    String pov2 = povP+"Число повинно бути більше ніж "+
                                       period2+" і менше ніж "+period1+povK;
                     throw   new  PropertyVetoException( pov1+"\n"+pov2,event);
                }
                 if  (gg <  0 )
                {
                    String pov1 = povP+"Введено невірний період: "+v+" ."+povK;
                    String pov2 = povP+"Дві останні цифри повинні відповідати номеру місяця!"+povK;
                     throw   new  PropertyVetoException(pov1+"\n"+pov2,event);
                }
                 if  (v ==  0 )
                {
                    String pov1 = povP+"Введено невірний період: "+v+" ."+povK;
                    String pov2 = povP+" Період не може бути порожнім !"+povK;
                     throw   new  PropertyVetoException( pov1+"\n"+pov2,event);
                }
            }
        });
    }
     public   void  SetintPeriod( int  v)  throws  PropertyVetoException
    {
        intPeriod.setValue(v);
    }
     public   int  getintPeriod()
    {
         return  intPeriod.getValue();
    }

     public  Locale getLocale()
    {
         return  locale;
    }
}
...
Рейтинг: 0 / 0
12.08.2005, 11:55
    #33212535
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
getLocale()
Встречный вопрос: почему нет? Я что-то не нашёл места где локали присваивается какое-то значение.
...
Рейтинг: 0 / 0
12.08.2005, 11:59
    #33212554
коты
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
getLocale()
если это веб, то локаль в HttpServletRequest

just another freak in the Freak Kingdom
...
Рейтинг: 0 / 0
12.08.2005, 12:03
    #33212569
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
getLocale()
NaugВстречный вопрос: почему нет? Я что-то не нашёл места где локали присваивается какое-то значение.

Может я туплю, я хочу чтобы считались национальные настройки компьтера...
...
Рейтинг: 0 / 0
12.08.2005, 12:04
    #33212575
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
getLocale()
котыесли это веб, то локаль в HttpServletRequest

just another freak in the Freak Kingdom

Это не вэб.
...
Рейтинг: 0 / 0
12.08.2005, 12:30
    #33212687
Naug
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
getLocale()
Locale.getDefault();

Хотя имха - лучше сама установи какую локаль использовать

http://www.joconner.com/javai18n/articles/Locale.html

ну и апи посмотри
...
Рейтинг: 0 / 0
12.08.2005, 12:32
    #33212694
GlukOza
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
getLocale()
NaugLocale.getDefault();

Хотя имха - лучше сама установи какую локаль использовать

http://www.joconner.com/javai18n/articles/Locale.html

ну и апи посмотри

Я так и сделала только что. Хочется универсальности.
...
Рейтинг: 0 / 0
12.08.2005, 12:39
    #33212721
AlexMD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
getLocale()
NaugЯ что-то не нашёл места где локали присваивается какое-то значение.
По-моему, уважаемый Naug совершенно прав.
В вашем коде объявлена переменная класса:
Код: plaintext
1.
 private  Locale locale;
далее вы вызываете метод:
Код: plaintext
1.
2.
 final  Locale loc = getLocale();
locale = getLocale();  
Но этот метод - это метод вашего же класса
SetUpPeriod
Код: plaintext
1.
2.
3.
4.
 public  Locale getLocale()
    {
         return  locale;
    }
,
который, ясное дело, возвращает null - значение переменной класса
locale, объявленной вами:
Код: plaintext
1.
2.
3.
4.
5.
 public   class  SetUpPeriod
{
     private  IntTextBean intPeriod;
    ...
     private  Locale locale;
Мой вам совет - прогоните ваш код через любой дебаггер -
и вы убедитесь в нашей с Naug-ом правоте ;-)).
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / getLocale() / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]