Swing Dateien auf Muster analysieren

MarioW1986

Bekanntes Mitglied
Hi zusammen, ich hab mal wieder ne Frage und zwar habe ich mir folgenden Code geschrieben (ist nur ein Ausschnitt), bei dem ein pattern abgefragt wird. Heißt ich durchsuche ein vorher ausgesuchtes Verzeichnis nach TXT Dateien die dem Muster von meiner Variable pattern entspricht. Alle die diesem Muster nicht entsprechen werden aussortiert. Alle anderen werden in meiner JList bzw meinem Model eingetragen. Alles schön und gut funktioniert wunderbar. Meine Frage ist jetzt, wie ich das mache, in meiner unten stehenden public boolean accept(File dir, String name) noch zusätzlich einen Wert abzufragen. Ich schreibe mir die Größe der Dateien in ein Array. Die Größe bedeutet, dass ich die ByteGröße - 72 nehme und dann durch 70 teile dann hab ich die anzahl der zeilen in meiner txt. meine txt dateien sind nach einem bestimmten Muster generiert, deswegen -72. Darauf muss net näher eingegangen werden. Im Prinzip will ich nur wissen, ob und wie ich noch einen Wert als Kriterium einbinden kann. Ich will keinen fertigen Code den ich nur reinkopieren muss, sondern nur irgend ein Beispiel, was mir zeigt, wie ich das machen kann und das anhand des Codeschnipsels der ejtzt folgt :) Danke ich hoffe das reicht ;)

Als kleine Anmerkung. ich möchte über die Modulo Berechnung prüfen, ob die Größe Rest 0 hat weil das ist in meinem Fall immer so.

Java:
...

                final String pattern = "[0-9]{3}.TXT";

                final FileTree chooser = new FileTree();
                chooser.setFileFilter(FileTree.DIRECTORY_FILTER);

                JScrollPane scrp = new JScrollPane(chooser);
                Border empty = BorderFactory.createEmptyBorder(5, 5, 2, 5);
                scrp.setBorder(BorderFactory.createCompoundBorder(empty,
                        scrp.getBorder()));

                JPanel bottom = new JPanel(new FlowLayout(FlowLayout.RIGHT));
                bottom.add(new JButton(new AbstractAction("OK") 
                {   
                    
                    @Override
                    public void actionPerformed(ActionEvent e) 
                    {   
                        if(!chooser.isSelectionEmpty())
                        {                 
                            File file = chooser.getSelectedFile();
                            list = file.listFiles(new FilenameFilter() 
                            { 
                                @Override
                                public boolean accept(File dir, String name) 
                                { 
                                   return name.matches(pattern);
                                } 

                                
                            });
 

Ark

Top Contributor
Okay, wenn ich das richtig verstanden habe, ist dieser Thread hier falsch einsortiert, weil das Problem so gar nichts mit Swing zu tun hat.

So, und jetzt formulierst du noch mal verständlich, um welches Kriterium es dir geht. Stell dir vor, du bekommst eine Datei vorgesetzt und sollst entscheiden, ob sie akzeptiert wird oder nicht. Also sagst du erst einmal in verständlicher, eindeutiger und natürlicher (deutscher) Sprache:

"Die Datei f wird genau dann akzeptiert, wenn der Name von f zum Muster pattern passt und … [hier bitte das nächste zu erfüllende Kriterium beschreiben]."

Ark
 

MarioW1986

Bekanntes Mitglied
hi also der thread is vllt falsch, aber generell geht es bei mir schon um swing, vllt aber bei der Frage grade net unbedingt.
Mein Problem ist zum einen schwer zu schildern und zum anderen für Außenstehende schwer zu verstehen. Ich versuch es einfach nochmal, ansonsten muss ichs wohl doch weiter alleine versuchen.

also der Auschnitt aus meinem SWING bassierenden Code:
Java:
 bottom.add(new JButton(new AbstractAction("OK") 
                {   
                    
                    @Override
                    public void actionPerformed(ActionEvent e) 
                    {   
                        if(!chooser.isSelectionEmpty())
                        {                 
                            final File file = chooser.getSelectedFile();
                            list = file.listFiles(new FilenameFilter() 
                            { 
                                @Override
                                public boolean accept(File dir, String name) 
                                { 
                                    return name.matches(pattern);
                                } 

                                
                            });

ich frage in public boolean accept den Dateinamen ab, ob er dem Muster entspricht, den ich in der Variable pattern hinterlegt habe. pattern ist ein regulärer Ausdruck.

Java:
final String pattern = "[0-9]{3}.TXT";

heißt soviel wie: die Textdatei wird nur akzeptiert, wenn sie aus 3 Zahlen .TXT besteht ansonsten wird alles andere nicht in meine list übernommen. Soweit funktioniert das jetzt auch.
Was ich ejtzt wissen will ist, dadurch dass ich den return Befehl schon ausführe und meines Wissens nur einen Wert zurückgeben kann, wie erreiche ich eine 2. Prüfung auszuwerten.

Zum Beispiel: Die Prüfung des Dateinamens so wie oben beschrieben und kp zum Beispiel Datei ist nicht leer (die Dateigröße ist nicht null / 0)

Wenn das Thema falsch ist dann einfach verschieben.
Bräuchte aber Hilfe, weil das das letzte Problem ist, ansonsten sind alle Fehler abgefangen und mein Programm ist einsatzbereit :)

Heißt kurz: Wie binde ich eine 2. Prüfung ein, geht das in dem accept >Block oder muss das anders gemacht werden, wenn ja wie?!!?!?!?!

Danke ich hoffe das sit jetzt verständlich genug.
 

bERt0r

Top Contributor
accept ist eine Funtion und in die kannst du auch mehr als eine Zeile Code schreiben, falls es das ist was du wissen wolltest.
 

mla.rue

Bekanntes Mitglied
Rückgabewert der Methode ändern
Zeichenkette aus true/false + x zusammensetzen, oder Array/List/evtl Map
entsprechend die Zeichenkette/Array/list zurückliefern
 

MarioW1986

Bekanntes Mitglied
hi danke, ich hab noch ne frage :)

ich habs ejtzt bissi anders gelöst. vllt nicht die eleganteste Methode aber das ist egal. Hauptsache es läuft. Mein Programm nimmt net an nem Schönheitswettbewerb teil^^

Java:
final File file = chooser.getSelectedFile();
                            
                            dummy = file.listFiles(new FilenameFilter() 
                            { 
                                @Override
                                public boolean accept(File dir, String name) 
                                { 
                                        return name.matches(pattern);
                                }
                                
                            }); 
                            
                            list = dummy;
                            
                            for(int i=0; i<list.length; i++)
                            {
                                
                                if((((list[i].length()-72)%70)!=0) && ((list[i].length()-72)<0))
                                {
                                    //hier soll das Element aus der lsit entfernt werden
                                }
                                //System.out.println(list[i]);
                            }
Bei //hier soll das Element aus der lsit entfernt werden muss irgendwas noch hin.
Wie lösche ich das betreffende Element aus meiner List? list und dummy sind vom typ File[]

ich hatte ein delete Befehl benutzt nur wird da leider die gesamte datei aus dem Verzeichnsi gelsöcht^^ das is leider nicht der Sinn der Aktion^^
 
N

nillehammer

Gast
MarioW1986 hat gesagt.:
Zum Beispiel: Die Prüfung des Dateinamens so wie oben beschrieben und kp zum Beispiel Datei ist nicht leer (die Dateigröße ist nicht null / 0)
Du verwendest die listFiles-Methode, die einen FileNameFilter erwartet. Im FileNameFilter hast Du in der accept-Methode nur den Dateinamen, auf den Du Prüfungen machen kannst. Es gibt auch eine listFiles-Methode, die einen FileFilter (ohne Name) erwartet. In dessen accept-Methode bekommst Du das File-Objekt. Damit hat man etwas mehr Informationen, die man abprüfen kann. Die speziell von Dir angefragte Dateigröße erhälst du mit der length()-Methode von File. Die verschiedenen Bedingungen würdest Du dann mit && verknüpfen, ungefähr so:
Java:
public boolean accept(File file) {

  return (file.getName.matches(pattern)) && (file.length() > 0) ;
}
Wie lösche ich das betreffende Element aus meiner List? list und dummy sind vom typ File[]
Das ist genau Dein Problem. Du hast es hier mit Arrays zu tun. Aus denen kann man leider nicht löschen, weil sie eine fixe Länge haben. Du könntest entweder das betreffende Element null setzen und dann in einer eigenimplementierten Methode in ein Zielarray kopieren oder Du nutzt List/ArrayList.
Java:
List<File> list = Arrays.asList(dummy);
 

MarioW1986

Bekanntes Mitglied
super danke für deine Antwort. Ich werd mich mal dransetzen und versuchen das ganze umzusetzen.

Edit:
ist es nicht sogar so, dass die Daten die bei accept rausfallen erst gar net in meine Liste übernommen werden oder? das ist doch der sinn dieser Methode oder versteh ich das falsch?

Also wenn diese Methode funktioniert dann brauch ich die Löschfunktion nicht mehr weil die Elemente, die nicht in die Liste gehören vorher schon aussortiert oder lieg ich mit der annahme falsch?

gruß Mario :)
 
Zuletzt bearbeitet:

MarioW1986

Bekanntes Mitglied
ich beantwortet mir meine Frage mal selbst. Ja es ist so wie ich gesagt habe^^

Jetzt noch eine Frage. Wie fange ich beschädigte Dateien ab?
Ich habe eine beschädigte Datei in meinem Verzeichnis. Jedesmal wenn ich das Verzeichnis auswähle, stürtzt mein Programm ab. Kann ich das irgendwie abfangen?

Danke
Gruß Mario
 

jgh

Top Contributor
ist es nicht sogar so, dass die Daten die bei accept rausfallen erst gar net in meine Liste übernommen werden oder? das ist doch der sinn dieser Methode oder versteh ich das falsch?


Also wenn diese Methode funktioniert dann brauch ich die Löschfunktion nicht mehr weil die Elemente, die nicht in die Liste gehören vorher schon aussortiert oder lieg ich mit der annahme falsch?


na ja...^^
 

jgh

Top Contributor
wie sieht denn dieser "Absturz deines Programmes" aus?

Bekommst du Exceptions...dann bietet sich ein try/catch Block bspw an^^, aber auf sowas triviales bist du sicherlich schon selbst gekommen, bist ja nicht aus Dummhausen ;)
 

MarioW1986

Bekanntes Mitglied
achja komm jetzt bin ich echt gut zurechtgekommen. Mittlerweile ist mein Programm fertig. Ich kann meine Daten wählen und von den gewählten Daten wird ein LineChart erstellt und PDF gedruckt usw. bis auf das Dateiauswählen (was ich ohne deine Hilfe auch net hinbekommen hätte) bin ich alleien ziemlich gut klar gekommen.

Mob mich net sonst beschwer ich mich^^ :pueh:
 

jgh

Top Contributor
achja komm jetzt bin ich echt gut zurechtgekommen. Mittlerweile ist mein Programm fertig. Ich kann meine Daten wählen und von den gewählten Daten wird ein LineChart erstellt und PDF gedruckt usw. bis auf das Dateiauswählen (was ich ohne deine Hilfe auch net hinbekommen hätte) bin ich alleien ziemlich gut klar gekommen.

Mob mich net sonst beschwer ich mich^^ :pueh:

das hört sich doch ganz anständig an!
war doch nur ein Spaß aus Dummhausen ;)

mal ernsthaft, ich will doch nur helfen...also wie äußert sich der Absturz?
 

MarioW1986

Bekanntes Mitglied
Also die Meldung ist folgende:

Sep 28, 2012 11:49:00 AM filetree.Software$3$2 actionPerformed
Schwerwiegend: null
java.io.IOException: Die Datei oder das Verzeichnis ist beschädigt und nicht lesbar
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:242)
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
at java.io.InputStreamReader.read(InputStreamReader.java:184)
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.readLine(BufferedReader.java:317)
at java.io.BufferedReader.readLine(BufferedReader.java:382)
at filetree.Software.dateieinlesen(Software.java:777)
at filetree.Software$3$2.actionPerformed(Software.java:299)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)


Das Programm läuft dann ganz normal weiter, nur wird die fehlerhafte Datei auch in meiner Liste angezeigt, wähle ich diese aus, stürzt alles ab.
Deswegen will ich die gerne rausfiltern, weiß aber nicht wie.

Danke
 

Ark

Top Contributor
try-catch-Block?! ;)

Solche Dateien kannst du nur im Nachhinein aus der Liste entfernen (oder du musst sie stehen lassen und gibst z.B. jedes Mal eine Fehlermeldung aus). Grund: Ein solcher Fehler kann auch später noch passieren (etwa: jemand löscht die aufgelistete Datei, nachdem sie der Liste hinzugefügt wurde).

Ark
 
Zuletzt bearbeitet:

jgh

Top Contributor
also diese Exception kommt wann?

ok, bei irgendeiner Methode dateiEinlesen() die nach irgendeinem Button-Klick aufgerufen wird, aber was ist das genau? Deine Methode um Dateien in die JList zu schreiben, oder beim "Arbeiten" mit der Datei?

ansonsten remove sie doch wieder aus der JList...
 

MarioW1986

Bekanntes Mitglied
hi danke für die Antwort! Das mit dem nachher löschen ist doof weil ich sonst jetzt alles umbauen muss.

Ich hab ja ne Methode accept drinne, ist das nicht darüber möglich.
Weiter wird die Liste bei jedem Programmstart neu geladen, weswegen die Variante mit dem nachträglichen Löschen wieder hinfällig ist ;)

Gibts nicht ein Merkmal was ich abfragen kann z.B. ist die Datei ausführbar wenn nicht dan nschmeiß sie raus oder sowas.
 

Ark

Top Contributor
Gibts nicht ein Merkmal was ich abfragen kann z.B. ist die Datei ausführbar wenn nicht dan nschmeiß sie raus oder sowas.
Klar, steht ja in den APIs (in den Klassen [c]java.io.File[/c] bzw. seit Java 7 vorzugsweise [c]java.nio.file.Files[/c]). Aber auch damit kannst du bestenfalls nur eine Vorauswahl treffen: Im entscheidenden Augenblick kann es sein, dass die Datei doch nicht ausführbar ist. Deswegen wirst du um den try-catch-Block nicht herumkommen.

Ark
 

MarioW1986

Bekanntes Mitglied
@jgh
Also die Methode dateiEinlesen kommt direkt am Anfang, ich öffne jede Datei und schreibe mir die Daten jeweils in Arrays, damit ich später nur noch verarbeiten muss. Warum mach ich das? Ganz einfach, ich muss die Datei sowieso öffnen, weil ich die erste und zweite Zeile benötige, diese bilden den Vor und nachname in meiner JList. Deswegen speicher ich auch gleich die anderen Daten, damit ich die Datei später nicht nochmal aufrufen muss.

also kurz Datei einlesen öffnet die Datei bzw in dem Fall versucht sie es und liest Zeilenweise die Daten aus und speichert diese in den jeweiligen Arrays ab.

Edit:
Witzigerweise hab ich bereits einen try-catch Block, deswegen kann ich mein Programm nach dem Fehler weiter ausführen, aber das ist nicht Sinn und Zweck des ganzen
 

jgh

Top Contributor
dann musst du doch nur dafür sorgen, dass du die Exception auch behandelst...also bei solcher Exception dann die Datei nicht in die JList schreiben, oder wo ist das Problem?
 
N

nillehammer

Gast
java.io.IOException: Die Datei oder das Verzeichnis ist beschädigt und nicht lesbar
Das finde ich merkwürdig. Woher soll er FileInputStream wissen, dass eine Datei beschädigt ist. Kriegst Du eine ähnliche Fehlermeldung, wenn du direkt aus dem Dateiexplorer versuchst, die Datei zu öffnen? Hast Du vielleicht noch aus Versehen einen ungeschlossenen Stream auf der Datei?

Programmieren ist auch ein bisschen kreativ sein. Wenn die Möglichkeit, einen FileInputStream auf einer Datei zu öffnen, ein Kriterium für ein accept ist, dann mach genau das in der accept-Methode.
Java:
public boolean accept(File file) {
 
  boolean fileConditionsMet =  (file.getName.matches(pattern)) && (file.length() > 0) ;
  
  if(!fileConditionsMet) {
    return false;
  }

  // Die definierten conditions passen schon mal
  // jetzt versuchen, die Datei zu öffnen
  try {
     // Stream öffnen
     FileInputStream fileIn = new FileInputStream(file);
     // Proforma ein Byte lesen
     fileIn.read();
    
     fileIn.close();

     // Hat alles fehlerfrei funktioniert, returne true
     return true;
  }
  catch(IOException e) {
     System.out.println(e.getMessage)
     return false;
  }
}
Sieht für mich aber wie ein dirty Workaround aus. Finde lieber heraus, warum der FileInputStream denkt, die Datei sei beschädigt.
 
Zuletzt bearbeitet von einem Moderator:

MarioW1986

Bekanntes Mitglied
ja schon aber ich weiß net so genau wie^^

Also ich will am besten in der accept Methode schon das ganze abarbeiten, damit die Daten erst gar net in mein Array kommen. Ich hoffe du weißt wie ich das meine.

Aktuell sieht das bei mir so aus:
Java:
bottom.add(new JButton(new AbstractAction("OK") 
                {   
                    
                    @Override
                    public void actionPerformed(ActionEvent e) 
                    {   
                        if(!chooser.isSelectionEmpty())
                        {                 
                            final File file = chooser.getSelectedFile();                        
                            list = file.listFiles(new FileFilter()
                            {
                                @Override
                                public boolean accept(File file) 
                                {
                                    return (file.getName().matches(pattern)) && ((file.length()-212) > 0)  && (((file.length()-72)%70)==0);
                                }
                                
                            });
                            
                            System.out.println(list.length);
                            
                           
                            String text = "'" + file + "'";

                            arrVorname = new String[list.length];
                            arrNachname = new String[list.length];   
                            arrDatum = new String[list.length];
                            arrZeit = new String[list.length];
                            arrAnzeige = new String[list.length];
                            arrGroesse = new Long[list.length];
                            arrGeschlecht = new String[list.length];
                            arrAlter = new String[list.length];
                            arrLuftPO2 = new String[list.length];
                            
                            
                            SimpleDateFormat sdf1 = new SimpleDateFormat("dd.MM.yyyy");
                            SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");
                            
                            chosenPath.setVisible(true);
                            path.setText(text);
                            path.setForeground(Color.BLACK);
                            
                            for(int i=0; i<list.length; i++) 
                            {
                                    try 
                                    {
                                        arrNachname[i] = dateieinlesen(list[i].toString(),0);
                                        arrVorname[i] = dateieinlesen(list[i].toString(),1);
                                        arrAlter[i] = dateieinlesen(list[i].toString(),2);
                                        arrGeschlecht[i] = dateieinlesen(list[i].toString(),3);
                                        arrLuftPO2[i] = dateieinlesen(list[i].toString(),4).substring(0, 3);
                                    } 
                                    catch (IOException ex) 
                                    {
                                        System.out.println("Fehler");
                                    }
        
                                   
                                    arrGroesse[i] = ((list[i].length()-72)/70);
                                    arrDatum[i] = sdf1.format(list[i].lastModified());
                                    arrZeit[i] = sdf2.format(list[i].lastModified());
                                    arrAnzeige[i] = arrVorname[i] + " | " + arrNachname[i] + " | " + arrDatum[i] + "     |     " + arrZeit[i];
                                    listModel.addElement(arrAnzeige[i].toString());                           
                               // }
                            }

und bei arrNachname = dateieinlesen(list.toString(),0);
kommt jetzt mein Fehler bzw in dem Methodenaufruf aber dadurch, dass die Datei nicht geöffnet werden kann ist das halt so.

Jedoch will ich das ganze irgendwie wie hier abfangen:
Java:
return (file.getName().matches(pattern)) && ((file.length()-212) > 0)  && (((file.length()-72)%70)==0);

geht das irgendwie oder wie geht das mit der try catch Anweisung in meinem accept Block?
 

jgh

Top Contributor
denke mit dem Vorschlag von nillehammer (<= was für ein perverser Name eigentlich^^) und deinem Code sollte sich das doch machen lassen.
 
N

nillehammer

Gast
[OT]
jgh hat gesagt.:
nillehammer (<= was für ein perverser Name eigentlich^^)
Klingt nach Schmerzen, nä? Ist mein Straßenname seit den Olympischen Spielen im norwegischen Lillehammer. Hab ich mir nicht selbst ausgesucht, bin aber trotzdem stolz drauf :D[/OT]
 

MarioW1986

Bekanntes Mitglied
@nillehammer

die Datei ist wirklich beschädigt, nur soll das Programm in ner Firma eingesetzt werden und so etwas soll abgefangen werden, damit sich niemand mit solchen Problemen abgeben muss. Dafür programmiert man doch, damit man dem Anwender das Leben leichter macht. Also wie gesagt die Datei ist beschädigt, sie lässt sich auch net so aus dem Windows Explorer starten (manuell). Deswegen ein guter Test das solch eine Datei da ist. Damit es in zukunft nicht zu fehlern im laufenden Betrieb kommt, wollte ich das gerne abfangen :)
 
N

nillehammer

Gast
sie lässt sich auch net so aus dem Windows Explorer starten (manuell).
OK, dann ist sie wohl wirklich kaputt. Dann siehe mein letzter Post. Da hab ich Dir Code zum Copy&Paste hingeschrieben. Bequemer geht's nimmer...
 

MarioW1986

Bekanntes Mitglied
super genau das brauch ich :) funktioniert ohne Probleme :)
danke :) ich muss mir das jetzt nur mal genau angucken und verstehen aber sit ja viel kommentiert :)

jetzt kann ich dank euch auch bald Feierabend machen :)
das WE ist gerettet
 

MarioW1986

Bekanntes Mitglied
eine Sache hab ich doch noch^^

und zwar hab ich jetzt in NetBeans ein Build gemacht und hab jetzt meine *.jar Datei und wenn ich die ausführe dann heißt es, dass ich keine Main Klasse habe.

Witzigerweise, wenn ich Java 7 Update 7 installiere kommt das net mehr. Woran kann das liegen und/oder wie kann ich das beheben?

Ne Idee?

und noch was!!! Woher wisst ihr soviel? Arbeitet ihr schon lange mit Java?
 

jgh

Top Contributor
dann buildest du dein Projekt mit Java 7...irgendwo kannst du unter Netbeans einstellen mit welcher Version du deine JavaKlassen kompilieren willst.

[ot]
Klingt nach Schmerzen, nä? Ist mein Straßenname seit den Olympischen Spielen im norwegischen Lillehammer. Hab ich mir nicht selbst ausgesucht, bin aber trotzdem stolz drauf
jo, wäre ich auch :D[/ot]
 

MarioW1986

Bekanntes Mitglied
hi ihr habt mir so gut geholfen. Ich hab nochmal ne Frage.

Wenn ich einen Stick an meinen PC stecke dann geht doch von Windows ein Fenster auf von wegen Ordner öffnen oder mit Win Media Player öffnen. Kann ich das gleiche mit meinem Programm machen (falsche Frage, man kann sicher^^)

Aber wie? ich weiß net nach was ich gucken soll um mir Anregungen zu holen. Müsste ich solch ein Fenster komplett selbst erstellen oder kann ich über JavaCode das bestehende irgendwie abändern und mein Tool mit reinnehmen.

Also um das kurz zu beschreiben. Der Stick enthält txt daten die von meinem programm ausgewertet werden sollen. deswegen sollte mein Programm in der vorschlagsliste auftauchen, damit ich mein programm nicht seperat ausführen muss sondern es möglichst einfach für den anwender über das fenster starten kann (sry das alles klei ngeschrieben ist xD)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Java Dateien kopieren mit Fortschrittsbalken AWT, Swing, JavaFX & SWT 13
frager2345 Bild aus Dateien lesen und als Hintergrund verwenden AWT, Swing, JavaFX & SWT 2
N Dateien einlesen und in GUI immernoch auswählbar AWT, Swing, JavaFX & SWT 1
MiMa File Dateien im ListView als Name anzeigen? AWT, Swing, JavaFX & SWT 6
H JavaFX Media Dateien zu VideoPlayerController senden AWT, Swing, JavaFX & SWT 10
VPChief Gibt es eine möglichkeit Dateien aus der jar datei zu kopieren? AWT, Swing, JavaFX & SWT 46
F Output Stream / File Dateien / Speichern AWT, Swing, JavaFX & SWT 13
Z Bearbeitung von csv Dateien AWT, Swing, JavaFX & SWT 13
J JavaFX Wie verhindere ich das gleichzeitige Spielen von Dateien bei Mediaplayer JavaFX? AWT, Swing, JavaFX & SWT 3
E JavaFX Umgang mit SVG-Dateien AWT, Swing, JavaFX & SWT 0
S Swing JFileChooser best. Ordner wie Dateien behandeln AWT, Swing, JavaFX & SWT 4
D Dateien öffnen AWT, Swing, JavaFX & SWT 16
S Swing txt Dateien öffnen mit JFilleChooser AWT, Swing, JavaFX & SWT 4
B Swing Dateien im Swing-GUI anzeigen AWT, Swing, JavaFX & SWT 3
H RCP(SWT) Browser-Widget zeigt keine locale HTML-Dateien an AWT, Swing, JavaFX & SWT 1
E 2D-Grafik Speicherprobleme große Tiff-Dateien AWT, Swing, JavaFX & SWT 50
C 2D-Grafik Steganographie - Verschlüsselung von Dateien in Bildern - Bilder zeigen schwarze Rechtecke AWT, Swing, JavaFX & SWT 13
J Auf Dateien in JTree zugreifen AWT, Swing, JavaFX & SWT 15
MiMa Dateien aus Ordner in einer JList Ausgeben AWT, Swing, JavaFX & SWT 32
Daniel_L Drop von Dateien auf Frame - welche Drop-Location? AWT, Swing, JavaFX & SWT 2
H * Einlesen von Text-Dateien & Zeichensatz bestimmen AWT, Swing, JavaFX & SWT 2
K JFileChooser mehrere Dateien markieren ohne STRG AWT, Swing, JavaFX & SWT 4
N verschieben von Dateien auf der Festplatte über TreePaths funktioniert nicht AWT, Swing, JavaFX & SWT 10
F AWT DnD von Dateien mit Sonderzeichen funktioniert unter Linux nicht AWT, Swing, JavaFX & SWT 3
B ImageIO gif Dateien laden AWT, Swing, JavaFX & SWT 7
D LayoutManager Main layout auf andere Class Dateien verweisen? AWT, Swing, JavaFX & SWT 17
R Windows-Dateien auf GUI ziehen AWT, Swing, JavaFX & SWT 3
M Swing JTable Drag'n'Drop von Dateien AWT, Swing, JavaFX & SWT 3
S Dateien kopieren mit ProgressBar AWT, Swing, JavaFX & SWT 6
T SWT Wie Bilder aus JAR-Dateien einbinden? AWT, Swing, JavaFX & SWT 12
Developer_X Java BMP-Dateien laden AWT, Swing, JavaFX & SWT 2
T Compiler erzeugt mehrere .class Dateien AWT, Swing, JavaFX & SWT 2
K Per ComboBox Dateien einlesen AWT, Swing, JavaFX & SWT 23
G JFileChooser - erkennen v. existierenden Dateien ohne Endung AWT, Swing, JavaFX & SWT 1
I Dateien durchsuchen AWT, Swing, JavaFX & SWT 7
P Dateien per Drag&Drop ins Java-Fenster ziehen AWT, Swing, JavaFX & SWT 8
A Dateien in TextArea ausgeben AWT, Swing, JavaFX & SWT 6
G Dynamische Menüs mit Liste von MRU Dateien AWT, Swing, JavaFX & SWT 2
J Dateien einlesen AWT, Swing, JavaFX & SWT 3
E JList und Drag&Drop von Dateien AWT, Swing, JavaFX & SWT 1
H JFileChooser für alle Dateien und Directories unterhalb AWT, Swing, JavaFX & SWT 7
K SystemIcons v. Dateien & Verz. im TreeView anzeigen AWT, Swing, JavaFX & SWT 2
A JFileChooser - Mehrere Dateien per Maus markieren (nokeys) AWT, Swing, JavaFX & SWT 7
S Probleme beim Laden und Speichern von Dateien AWT, Swing, JavaFX & SWT 6
J Word/Excel-Dateien mit Button öffnen AWT, Swing, JavaFX & SWT 5
O Dateien aus Verzeichnis filtern und in JTable darstellen AWT, Swing, JavaFX & SWT 3
G JFileChooser: nur *.gif-Dateien anzeigen AWT, Swing, JavaFX & SWT 5
EagleEye GUI in mehrere Dateien aufteilen AWT, Swing, JavaFX & SWT 2
F Swing Wie zeichne/animiere ich im MVC Muster? AWT, Swing, JavaFX & SWT 8
C Eclipse Filter-Muster AWT, Swing, JavaFX & SWT 2
C NullPointerException im MVC Muster AWT, Swing, JavaFX & SWT 9
W Swing anklickbares Sechseck-Muster AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben