JPanel'i genişleten sınıfları olan bir paketi var ve bunları dinamik olarak sekmeler olarak eklemek istiyorum. Başlangıçta bir fabrika kullandım ve bütün sınıfları oraya kaydettim ve işe yaradı, ama şimdi paketlerdeki bütün sınıfları isimlerini bilmeden yüklemek istiyorum. Reflections library (çok kafa karıştırıcı bulduğum) dahil birkaç şey denedim ve onları işe alamadım. Herhangi bir yardım için minnettarım.Tüm sınıf isimleri bir pakette nasıl alınır?
İşte benim denemeler biri:
public static void registerTab() {
String pkg = TabA.class.getPackage().getName();
String relPath = pkg.replace('.', '/');
URL resource = ClassLoader.getSystemClassLoader().getResource(relPath);
if (resource == null) {
throw new RuntimeException("Unexpected problem: No resource for "
+ relPath);
}
File f = new File(resource.getPath());
String[] files = f.list();
for (int i = 0; i < files.length; i++) {
String fileName = files[i];
String className = null;
String fileNm = null;
if (fileName.endsWith(".class")) {
fileNm = fileName.substring(0, fileName.length() - 6);
className = pkg + '.' + fileNm;
}
if (className != null) {
if (!tabClasses.containsKey(className))
tabClasses.put(fileNm, className);
}
}
}
İşte
Yansımada neyin ters gittiği? –