powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / getLocale()
8 сообщений из 8, страница 1 из 1
getLocale()
    #33212463
GlukOza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Вот такой есть класс. Проблема такая: 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
getLocale()
    #33212535
Naug
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Встречный вопрос: почему нет? Я что-то не нашёл места где локали присваивается какое-то значение.
...
Рейтинг: 0 / 0
getLocale()
    #33212554
коты
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если это веб, то локаль в HttpServletRequest

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

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

just another freak in the Freak Kingdom

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

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

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

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

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

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

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

Я так и сделала только что. Хочется универсальности.
...
Рейтинг: 0 / 0
getLocale()
    #33212721
AlexMD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / getLocale()
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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