Nur JavaBeans laden? Dateifilter?

Status
Nicht offen für weitere Antworten.

Luma

Bekanntes Mitglied
Hio. Ich bin gerade an einem Java-Programm welches meinen Roboter steuern soll. Da ich meinen Roboter ständig verändere will ich das Programm sehr modular programmieren.
Ich habe das dann so vorgesehen: Das Hauptprogramm besteht aus mehreren Desktops (also JDesktopPanes) die auswählbar sind. Auf diesen Desktops sollen später einmal meine Module geladen und angezeigt werden. Mit Modulen bezeichne ich kleine eigenständige Programme (als JavaBean verpackt und mit einem JInternaleFrame auf dem jeweiligen Desktop angezeigt) mit welchem man unterschiedliche Funktion des Roboters ansteuern kann (also z. B. das Modul CameraModule. Mit ihm kann man die Kamera des Roboters auslesen).
Wie bereits erwähnt verpacke ich diese Module in Beanform als eine Jar. Später gibt es dann ein großes Sammelverzeichnis wo man alle diese Module ablegt. Wenn dann das Java-Programm startet lädt es diese Module.

Jetzt das Problem: Wenn ich zu NetBeans die Bean hinzufüge und die in einem JInternaleFrame anzeige geht das wunderbar. D. h. er liest die Bean aus und zeigt sie in einem JInternaleFrame an. Nur soll das Programm später "alleine" die Beans hinzufügen. Wie geht das? Wie lese ich ein Verzeichnis aus. Sammle alle vorhandene Dateinamen und laden dann Bean für Bean auf den Desktop?
Bisher kann ich das ganze nur mit einer Notlösung realisieren. Und zwar lege ich im ext-Verzeichnis des JRE die Bean ab. Dann kann ichs im Programm öfnen. Aber so ist das nicht sonderlich schön. Hat mir da jemand vielleicht eine bessere Lösung?
Danke im Vorraus,
Lutz
 

L-ectron-X

Gesperrter Benutzer
Willst du die Dateien aus dem Verzeichnis mit einem JFileChooser noch auswählen können, oder sollen sofort alle vorhandenen Dateien eingelesen werden?
 

Luma

Bekanntes Mitglied
Alle Dateien sollen eingelesen werden und dann mit einem JInternaleFrame auf einem JDesktopPane angezeigt werden...
 

L-ectron-X

Gesperrter Benutzer
Fangen wir doch mal damit an:
Luma hat gesagt.:
...
Wie lese ich ein Verzeichnis aus. Sammle alle vorhandene Dateinamen
...
Ich habe das mal ausprobiert und eine Klasse gekritzelt, die mit Hilfe eines Dateifilters ein vorzugebendes Verzeichnis nach Dateien des Typs .jar durchsucht und die gefundenen Dateien für die weitere Bearbeitung/Verwendung zurückgeben kann.
Java:
import java.io.File;
import java.io.FilenameFilter;
import java.util.Vector;

/**
* Diese Klasse gibt alle Dateien der spezifizierten Directory und optional
* des spezifizierten Typs zur weiteren Bearbeitung/Verwendung zurück.
*/
public class ReadAllFilesInDirectory {
   private File filedir;
   private File[] filteredFiles;

   /**
   * Dieser Konstruktor dient dazu, ein Objekt der Klasse so zu initialisieren,
   * dass nur Dateien des spezifizierten Verzeichnisses und des spezifizierten
   * Dateityps verarbeitet werden können.
   * @param dir Die Directory, in der nach Dateien eines Typs gesucht werden soll.
   * @param suffix Dateien dieses Dateityps sollen gesucht werden.
   */
   public ReadAllFilesInDirectory(String filedir, String suffix) {
      this.filedir = new File(filedir);
      filteredFiles = listFiles(suffix);
   }

   /**
   * Dieser Konstruktor dient dazu, ein Objekt der Klasse so zu initialisieren,
   * dass alle Dateien des spezifizierten Verzeichnisses verarbeitet werden können.
   * @param dir Die Directory, deren Inhalt ausgegeben werden soll.
   */
   public ReadAllFilesInDirectory(String filedir) {
      this.filedir = new File(filedir);
      filteredFiles = this.filedir.listFiles();
   }

   //Erstellt die Liste von Dateien einer Directory
   private File[] listFiles(String suffix) {
      Filter f = new Filter(suffix);
      Vector list = convertToVector(filedir.listFiles());
      for(int i = 0, j = list.size(); i < j; i++) {
         //Datei entspricht nicht dem gesuchten Muster
         if(!f.accept(((File)list.get(i)).getParentFile(), ((File)list.get(i)).getName())) {
            list.remove(i);
            i--;
            j--;
         }
      }
      return convertToArray(list);
   }

   /**
   * Gibt ein File-Array zurück, in welchem die ermittelten Dateien des
   * spezifizierten Typs gespeichert sind.
   * @return ein File-Array
   */
   public File[] getFilteredFiles() {
      return filteredFiles;
   }

   //Hilfsmethode zum Umwandeln eines Arrays in einen Vector
   private Vector convertToVector(Object[] obj) {
      Vector v = new Vector(obj.length);
      for(int i = 0; i < obj.length; i++) {
         v.add(obj[i]);
      }
      return v;
   }

   //Hilfsmethode zum Umwandeln eines Vectors in ein Array
   private File[] convertToArray(Vector vec) {
      File[] files = new File[vec.size()];
      for(int i = 0, j = vec.size(); i < j; i++) {
         files[i] = (File)vec.get(i);
      }
      return files;
   }

   /**Ein Dateifilter für beliebige Dateitypen.
   * Der gesuchte Dateityp wird dem Konstruktor der Klasse übergeben.
   */
   class Filter implements FilenameFilter {
      private String suffix;

      /** Konstruktor. Er erwartet einen String, der den Dateityp spezifiziert.
      * @param suffix Die Dateiendung. Bsp.: .txt
      */
      public Filter(String suffix) {
         this.suffix = suffix;
      }

      public boolean accept(File dir, String name) {
         return dir.equals(filedir) && name.endsWith(suffix);
      }
   }

   //Eine Methode zum Testen der Klasse
   public static void main(String[] args) {
      ReadAllFilesInDirectory rafid = new ReadAllFilesInDirectory("C:/Pfad/zu/den/JavaBeans", ".jar");
      File[] files = rafid.getFilteredFiles();
      for(int i = 0; i < files.length; i++) {
         System.out.println(files[i]);
      }
   }
}
Ich hoffe, du kannst sie gebrauchen oder dir geht das eine oder andere Licht auf. :wink:
Es kann sein, dass sie nicht perfekt ist, aber sie funktioniert.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J JavaBeans was ist daran so aussergewoehnlich Allgemeine Java-Themen 11
T Hilfe bei Grundlagen Javabeans und Eclipse Allgemeine Java-Themen 6
W Aufruf von JavaBeans Allgemeine Java-Themen 3
O Maven ein externes jar laden ohne die Applikation neu zu kompilieren Allgemeine Java-Themen 4
F Laden von bestimmten Daten aus TAR Archiv Allgemeine Java-Themen 23
E Objekte in einen String packen und wieder laden Allgemeine Java-Themen 5
Tobero .jar Dateine aus einem Ordner laden (Java 16) Allgemeine Java-Themen 5
yakazuqi Fehler beim Laden. JDA (Java Discord API) Allgemeine Java-Themen 1
L Jar Dateien in Classpath laden ab JDK 9+ Allgemeine Java-Themen 11
C Wav-Datei aus Jar laden? Allgemeine Java-Themen 11
H Objekte speichern und laden Allgemeine Java-Themen 10
H Objekte speichern und laden Allgemeine Java-Themen 1
H Objekt speichern und laden Allgemeine Java-Themen 1
H Objekt speichern und laden Allgemeine Java-Themen 1
I Klassen aus Jar-Dateien aus anderem Ordner laden Allgemeine Java-Themen 3
F Arraylist vollständig abspeichern und laden Allgemeine Java-Themen 1
T Compiler-Fehler NoClassDefFoundError beim Laden einer Class Allgemeine Java-Themen 11
temi Java Programm aus einer DB laden und starten Allgemeine Java-Themen 2
I Laden von Informationen aus Dateien: Austauschbarkeit: 2 Dateien sinnvoll? Allgemeine Java-Themen 2
H Laden einer (Resourcendatei) aus einem Jar-File Allgemeine Java-Themen 17
B Von String zu <Objekt> ||Speichern/Laden Allgemeine Java-Themen 17
Developer_X Website HTML Code von HTTPS URL laden Allgemeine Java-Themen 0
L Seite einer Partner Website neu laden Allgemeine Java-Themen 1
RalleYTN Audiolänge einer MP3 Datei erhalten ohne diese vollständig zu laden Allgemeine Java-Themen 15
S Maven Jars dynamisch laden / Plugin-Struktur erstellen Allgemeine Java-Themen 14
X Klassen aus jar in jar Laden Allgemeine Java-Themen 1
X Mehrere booleans in Datei Speichern, Updaten und Laden Allgemeine Java-Themen 1
L Mapdaten laden Allgemeine Java-Themen 10
B Aktuellen Sourcecode aus Browser laden Allgemeine Java-Themen 43
HoloYoitsu Kann .dll nur aus Eclipse heraus laden Allgemeine Java-Themen 7
F Teil eines Bildes laden Allgemeine Java-Themen 1
L JavaFX JavafX externe FXML laden? Allgemeine Java-Themen 4
M Eine Datei im Speicher erneut laden(?) Allgemeine Java-Themen 1
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Allgemeine Java-Themen 3
S Allgemeine parallelisierte Loesung um Daten im Hintergrund zu laden..? Allgemeine Java-Themen 6
F Java Native/Shared Library (.so) laden macht Probleme Allgemeine Java-Themen 3
V Input/Output Sound Dateien aus Jar laden Allgemeine Java-Themen 18
V Input/Output Gif Bilder Animiert aus einer Jar laden Allgemeine Java-Themen 4
V Input/Output Swing Icons in Jar Archiv laden Allgemeine Java-Themen 10
C BufferedImages in Jar laden. Allgemeine Java-Themen 1
G StackoverflowError beim laden einer FXMML Datei Allgemeine Java-Themen 1
Developer_X Input/Output Serialisiertes Objekt speichern und laden Allgemeine Java-Themen 1
J Arraylist speichern und laden? Allgemeine Java-Themen 5
S Applet in html laden; InvocationTargetException,.. nur warum ? Allgemeine Java-Themen 0
M Klassen Klasse Dynamisch laden und Konstruktor aufrufen Allgemeine Java-Themen 1
A Anderes Fenster neu laden Allgemeine Java-Themen 16
N Daten aus Jar laden Allgemeine Java-Themen 10
N Klasse via ClassLoader laden Allgemeine Java-Themen 2
antonbracke Aus Jar eine Class laden und damit arbeiten! Allgemeine Java-Themen 5
K Input/Output Daten speichern / laden Allgemeine Java-Themen 2
A Class Datei aus Verzeichnis über URLClassLoader laden Allgemeine Java-Themen 2
A mit getClassLoader Bild laden Allgemeine Java-Themen 8
S Speichern/Laden/Hinzufügen/Löschen der Array-Wörter; unerwartete Ausgabe Allgemeine Java-Themen 6
G Native Library / Fehler beim Laden der .so/.dll Datei Allgemeine Java-Themen 17
antonbracke Klassen Klassen gegenseitig laden Allgemeine Java-Themen 4
K Input/Output Im Programm instanzierte Objekte Speichern und laden Allgemeine Java-Themen 3
T Java Klassen aus externer .jar laden und ausführen Allgemeine Java-Themen 3
P Textdatei aus Ressourcen laden. Allgemeine Java-Themen 8
R Java Array speichern & laden Allgemeine Java-Themen 23
N Input/Output Bild von WebSite laden? Allgemeine Java-Themen 3
G Interface Laden der Konfiguration über Interfaces sinnvoll? Allgemeine Java-Themen 28
Z Bilder aus JAR laden Allgemeine Java-Themen 2
D Ressourcen(config) laden Allgemeine Java-Themen 11
J Laden von JAR Files geht ohne ADMIN Rechte sehr langsam Allgemeine Java-Themen 6
S IMAGE ARRAY laden Allgemeine Java-Themen 6
J Methoden Fehler beim serialisieren und laden!? help Allgemeine Java-Themen 4
Grejak 2D-Grafik Resourcen laden Allgemeine Java-Themen 4
firefexx ResourceBundle laden Allgemeine Java-Themen 2
V Klassen in "abgeschirmten Bereich" laden? Allgemeine Java-Themen 7
I bibliotheken nur via kommandozeile laden Allgemeine Java-Themen 16
U Classpath DLLs mittels System.load() laden: Allgemeine Java-Themen 6
F Vierdimensionellen String Array speichern/laden Allgemeine Java-Themen 5
T Api in Quellcode laden Allgemeine Java-Themen 8
O Jar und Iconbild laden Allgemeine Java-Themen 19
A Problem mit Bilder laden mit sum.kern Allgemeine Java-Themen 9
F Laden von externen Bibliotheken Allgemeine Java-Themen 3
hdi Ressourcen dynamisch zur Laufzeit laden Allgemeine Java-Themen 15
P Laden von Dateien mit und ohne JavaWebStart Allgemeine Java-Themen 3
I HTML Seite laden Allgemeine Java-Themen 6
A Klassen dynamisch aus jar-datei laden Allgemeine Java-Themen 5
D Bilder aus externer .jar laden Allgemeine Java-Themen 3
reibi Files über Classpath laden Allgemeine Java-Themen 22
S Dynamisches Manipulieren/Laden von Klassen Allgemeine Java-Themen 4
M Klasse aus xyz.class Datei laden / package entfernen? Allgemeine Java-Themen 4
multiholle Resourcen aus Jar-Archiv laden Allgemeine Java-Themen 5
F Bild aus externer Quelle laden und Skalieren? Allgemeine Java-Themen 11
hdi Kann Substance LAF nicht laden Allgemeine Java-Themen 3
T Eclipse Dateien einzeln aus einem Verzeichnis laden! Allgemeine Java-Themen 6
H Extra-Thread sinnvoll für XML-Datei laden? Allgemeine Java-Themen 4
T Class-files zur Laufzeit zu Reflection-Zwecken laden Allgemeine Java-Themen 18
SuperSeppel13 Bilder auf Anfrage laden - Threading Allgemeine Java-Themen 3
Developer_X Aus Datei in Arrays laden-Problem Allgemeine Java-Themen 5
L Applet immer wieder neu laden - Problem Allgemeine Java-Themen 25
N Klassen laden Allgemeine Java-Themen 5
Developer_X Java Applet - Font aus datei laden Allgemeine Java-Themen 15
N Speichern und laden in XML nicht via JAXB Allgemeine Java-Themen 4
F Klasse ohne voll qualifizierenden Namen laden Allgemeine Java-Themen 5
O Große Anzahl Bilder laden Allgemeine Java-Themen 7
S Bilder aus jarDateien laden Allgemeine Java-Themen 13
N verschiedene Klasse laden (Designfrage) Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben