@Override
    protected void initConstraint()
    {
        if ( Theme.list == null )
        {
            Theme.list = new HashSet<String>();

            String jarPath = Window.class.getResource("game").getPath();
            jarPath = jarPath.substring(5, jarPath.indexOf("!"));

            JarFile jar = null;
            try {
               jar = new JarFile(URLDecoder.decode(jarPath, "UTF-8"));
            } catch (IOException ex) {
               Logger.getLogger(Theme.class.getName()).log(Level.SEVERE, null, ex);
               System.exit(1);
            }

            Enumeration<JarEntry> jarContent = jar.entries();
            while (jarContent.hasMoreElements()) {
               JarEntry entry = jarContent.nextElement();
               String fileName = entry.getName();
               if (!entry.isDirectory() || !fileName.contains("game") || fileName.endsWith("game/"))
                  continue;
               String[] theme = fileName.split("/");
               Theme.list.add(theme[theme.length-1]);
            }
        }
    }