Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Грамотность написания кода / 5 сообщений из 5, страница 1 из 1
25.05.2005, 17:29
    #33083949
oleg555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грамотность написания кода
Добрый день ! ответьте на такой вопрос пожалуйста:
Есть Свинговая программа в ней используются gif рисунки для кнопок и т.д.
тк кнопки "отменить ","вставить" и т.д встречаются в нескольких классах как лучше прописать название этих файлов? я делал static Icon[] в одном из классов и использовал потом этот массив в других классах правильный ли это подход?
...
Рейтинг: 0 / 0
25.05.2005, 18:42
    #33084076
NotGonnaGetUs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грамотность написания кода
А что такое правильный подход? Если код работает - значит он уже "правильный" %)

Могут быть и такие варианты кроме массива:
1.
Код: 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.
enum ImageIcons {
    BUTTON_OK_ON("path/xxx1.gif"),
    BUTTON_OK_OFF("path/xxx2.gif"),
    BUTTON_CANCEL_ON("path/yyy1.gif"),
    BUTTON_CANCEL_OFF("path/yyy2.gif");

     private  String path;
     private  Icon icon;

    ImageIcons(String path)
    {
         this .path = path;
        icon = loadIcon(path);
    }

     public  String getPath(){ return  path;};
     public  Icon getIcon(){ return  icon;};
    
     private   static  Icon loadIcon(String path)
    {
         return  ...;
    }
} 

... usage ...
 new  JButton(ImageIcons.BUTTON_OK_ON.getIcon()); 

2.
Код: 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.
 class  ImageCache {
     private   static   int  MAX_CACHE_SIZE =  50 ;
     private   static  Map icons =  new  HashMap();
    
     private  ImageCache(){};

     public   static  Icon getIcon(String path)
    {
         synchronized  (icons)
        {
             if  (!icons.containsKey(path))
            {
                insertIcon(path,  new  Record(loadIcon(path)));
            }
            Record record = (Record) icons.get(path);
            record.accessCount++;
             return  record.icon;
        }
    }

     private   static   void  insertIcon(String path, Record record)
    {
         if  (icons.size() == MAX_CACHE_SIZE)
        {
             int  minAccessCount = Integer.MAX_VALUE;
            String keyToRemove =  null ;
             for  (Iterator i = icons.keySet().iterator(); i.hasNext();)
            {
                String key = (String) i.next();
                 int  accessCount = ((Record) icons.get(key)).accessCount;
                 if  (minAccessCount > accessCount)
                {
                    minAccessCount = accessCount;
                    keyToRemove = path;
                }
            }
            icons.remove(keyToRemove);
        }
        icons.put(path, record);
    }


     private   static  Icon loadIcon(String path)
    {
         return  ...;
    }

     private   static   class  Record 
    {
        Icon icon;
         int  accessCount;

        Record(Icon icon)
        {
             this .icon = icon;
        }
    }
}

... usage ...
 new  JButton(ImageCache.getIcon("petya/xxx.jpg")); 


3.
Код: 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.
 class  IconMapping {
     private  Properties mapping =  new  Properties();
     private  IconMapping(String pathToMappingFile) {
         try 
        {
            mapping.load( new  FileInputStream(pathToMappingFile));
        }
         catch  (IOException e)
        {
           //create log record here...
        }
    }
    
     public  Icon getIcon(String name){
        String iconFileName = mapping.getProperty(name);
         return  ImageCache.getIcon(iconFileName); //см. выше :)
    }
        
     public   static  IconMapping getMapping(String propertiesFileName){
          return  ...; //как больше нравится, хоть new IconMapping(propertiesFileName)
    }
}

...usage...

IconMapping mapping = IconMapping.getMapping("myApp.properties");
 new  JButton(mapping.getIcon("frameXXX.buttonYYY"));

myApp.properties:
frameXXX.imageYYY=petya/xxx.jpg
frameZZZ.imageYYY=vasya/xxx.jpg


p/s/ Код не рабочий, написан в качестве иллюстрации дял идей :)
...
Рейтинг: 0 / 0
25.05.2005, 18:55
    #33084088
oleg555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грамотность написания кода
да все переживаю что то что пишу "неправильно " написано .самоучка я -)))
работать работает но типа вдруг по каким то параметрам неграмотно или еще что
спасибо за идеи-)))
...
Рейтинг: 0 / 0
25.05.2005, 19:10
    #33084102
NotGonnaGetUs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грамотность написания кода
oleg555да все переживаю что то что пишу "неправильно " написано .самоучка я -)))
работать работает но типа вдруг по каким то параметрам неграмотно или еще что
спасибо за идеи-)))

тогда лучше показать код целиком, возможно есть более существенные моменты на которые стоит обратить внимание :)
...
Рейтинг: 0 / 0
26.05.2005, 09:42
    #33084466
oleg555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Грамотность написания кода
Ага и еще попросить подправить усовершенствовать и переслать на мыло-)))))
или лучше сразу постановку задачи выложить -)))))
спасибо еще раз
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Грамотность написания кода / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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