powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Грамотность написания кода
5 сообщений из 5, страница 1 из 1
Грамотность написания кода
    #33083949
oleg555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день ! ответьте на такой вопрос пожалуйста:
Есть Свинговая программа в ней используются gif рисунки для кнопок и т.д.
тк кнопки "отменить ","вставить" и т.д встречаются в нескольких классах как лучше прописать название этих файлов? я делал static Icon[] в одном из классов и использовал потом этот массив в других классах правильный ли это подход?
...
Рейтинг: 0 / 0
Грамотность написания кода
    #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
Грамотность написания кода
    #33084088
oleg555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да все переживаю что то что пишу "неправильно " написано .самоучка я -)))
работать работает но типа вдруг по каким то параметрам неграмотно или еще что
спасибо за идеи-)))
...
Рейтинг: 0 / 0
Грамотность написания кода
    #33084102
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oleg555да все переживаю что то что пишу "неправильно " написано .самоучка я -)))
работать работает но типа вдруг по каким то параметрам неграмотно или еще что
спасибо за идеи-)))

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


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