Dateifehler - Öffnet nicht

AlexF2002

Mitglied
Ich programmiere gerade hobbymäßig ein Programm und das verarbeitet die Daten nicht richtig.
Wenn die Datei vorhanden ist (!) wird sie nicht geöffnet, ansonsten versucht das Programm genau dies. Warum?
Das Archiv enthält drei Dateien:
Den Quellcode, die Jar-Datei und den Dateibaum, der im Verzeichnis der Jar-Datei sein muss.
 

Anhänge

Moin und Willkommen,

bitte poste Deinen Code hier direkt mit Code-Tags!
Es ist dann zum einen besser les- und vorallem zitierbar und zum anderen öffnen viele hier nicht mal eben so unbekannte Dateien!

Zudem: wieso ist die Anlage von typ JAR, wenn sie auch andere Dinge enthält?
Ist es vielleicht 'nur' ein ZIP-Datei?

VG Klaus
 
Ich hab es mit anderen archivtypen versucht - hat er alle nicht hochgeladen...
Außerdem dachte ich, das der Code etwas zu groß zum hier posten..
 
Naja ohne die Daten des Dateibaumes wirst du nichts weils sich dann gleich mit ner NullPointerException verabschiedet...
Aber wichtig sind eigentlich nur die Stellen in AM4.Panel und unterfunktionen und ev. in Code.read.
Die Logs helfen vielleicht auch weiter, die letzten paar von heute beziehen sich auf das aktuelle Programm.
 
Ok derFehler ist in den Zeilen 16 bis 23, denke ich, aber ich kapier nicht, wodran das liegt:
Java:
private static void Panel() {
        String[] why = Code.read(new File("main"+sep+"config", "main.page"));
        Code.pl(why);
        //JFrame frame = Swingbuild.newJFrameMax("Main");
        //setHash("white", Swingbuild.newJPanel(Color.WHITE));
        JFrame frame = Swingbuild.newJFrame("Main", 1000,600);
        setHash("frame", frame);
        JButton closeAll = closebutton(frame,"Select",null);
       
        JSplitPane jsp = Swingbuild.newJSplitPane("Firstpanel","VT",50);
        jsp.setEnabled(false);//Divider bewegen?
       
        JPanel Maintop = Swingbuild.newJPanel(Color.WHITE);
        JPanel Mainbottom = Swingbuild.newJPanel(maincolor);
        JComboBox<String> choice = new JComboBox<String>();
        String[] file = Code.read(new File("main"+sep+"config","main.page"));
        for(int i=13;i<file.length;) {
            choice.addItem(file[i]);
            Code.pl(file[i]);
            file[i] = file[i].substring(0, file[i].length()-1);
            Code.pl(file[i]);
            fach(file[i], Color.WHITE);
            i++;
        }
        /*
        choice.addItem("Mathe");
        fach("Mathe",mathecolor);
        choice.addItem("Bio");
        fach("Bio",biocolor);
        choice.addItem("Latein");
        fach("Latein", lateincolor);
        choice.addItem("Englisch");
        fach("Englisch", englishcolor);//*/
        JButton choicebutton = Swingbuild.newJButton("Weiter");
        Mainbottom.add(choice);
        Mainbottom.add(choicebutton);
        choicebutton.addMouseListener(new MouseAdapter () {
            @Override public void mouseClicked( MouseEvent e) {
            String what = choice.getItemAt(choice.getSelectedIndex());
            log.log2("READ", what);
            jtp.addTab(what, getHash(what));
            }
        });
        JButton reloadbutton = Swingbuild.newJButton("Reload");
        reloadbutton.addMouseListener(new MouseAdapter () {
            @Override public void mouseClicked( MouseEvent e) {
                jtp.removeAll();
                jtp.addTab("Main",getHash("jsp"));
                log.log2("Info","Reload JTP");
            }});
        Maintop.add(reloadbutton);
       
        Mainbottom.add(Swingbuild.newJLabel("<html><h1>Wähle das Fach</h1><p></p><h3>Funktionierend: - Mathe </h3></html>"));
       
        addlr(Maintop, Mainbottom, jsp);
       
        frame.add(jtp);
        setHash("jsp", jsp);
        jtp.addTab("Main", jsp);
       
        log.log2("Info","Created JFrame, added jtp(with Main).");
       
        closeAll.setForeground( Color.BLACK);
   
       
        frame.setVisible(true);
        frame.addWindowListener(new java.awt.event.WindowAdapter() {
            @Override
            public void windowClosing(java.awt.event.WindowEvent windowEvent) {
                log.log2("Info","Try to close");
                if (JOptionPane.showConfirmDialog(frame, 
                    "Sicher, das du das Fenster schließen willst?", "Applikation beenden?", 
                    JOptionPane.YES_NO_OPTION,
                    JOptionPane.QUESTION_MESSAGE) == JOptionPane.YES_OPTION){
                    log.log2("MAIN","System.exit caller 0");
                    System.exit(0);}//*/
                //log.log2("Main", "EXIT");
                //System.exit(0);
            }
        });
    }
   
    private static JPanel newpanel(String name, Color color) {
        JPanel ret = Swingbuild.newJPanel(name, color);
        ret.add(close(ret));
        return ret;}
   
    private static void fach(String which, Color color) {
        log.log2("MAIN","Try to open following: "+which);
        Code.pl("Opentry");
        System.out.println(new File("main"+sep+"Data"+sep+which,"1.page").toString());
        if(!new File("main"+sep+"Data"+sep+which,"1.page").exists()) {
            log.err2("The file don't exist. Open an inexistent file and you get an copy of the first page.");
            return;
        }
        JPanel top = Swingbuild.newJPanel(which,Color.WHITE);
        JPanel down = Swingbuild.newJPanel(which, color);
        JSplitPane returnsplit = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
        returnsplit.setContinuousLayout(false);
        returnsplit.setDividerLocation(40);
        top.add(close(returnsplit));
        addlr(top, down, returnsplit);
        String[] read = Code.read(new File("main"+sep+"Data"+sep+which,"1.page"));
        Code.pl(read);
        String[] box = new String[read.length-5];
        for(int i=5; i<read.length;) {
            box[i-5] = read[i];
            i++;
        }
        JComboBox<String> mathebox = combobox(box);
        down.add(mathebox);
        JButton open = Swingbuild.newJButton("Open");
        open.addMouseListener(new MouseAdapter () {
            @Override
            public void mouseClicked( MouseEvent e) {
                String boxstring = mathebox.getSelectedItem().toString();
                Code.pr(boxstring);
                boxstring = boxstring.substring(0, boxstring.length()-1);
                Code.pr(boxstring.length());
                JPanel add = new JPanel();
                String ps = Code.readone(new File("main"+sep+"Data"+sep+which,boxstring+".page"));
                if(ps.contains("--Comment--")) {
                   
                }
                else {
                    JLabel label = new JLabel();
                    label.setText(ps);
                    add.add(label);
                }
               
                jtp.addTab(mathebox.getSelectedItem().toString(), add);
            }
        });
        down.add(open);
        setHash(which, returnsplit);
    }
   
    public static JButton close(Component comp) {
        JButton ret = new JButton();
        ret.setText("Close Page");
        ret.addMouseListener(new MouseAdapter () {
            @Override
            public void mouseClicked( MouseEvent e) {
                jtp.remove(comp);
                log.log2("PAGE","Closed "+comp);
            }
        });
        return ret;
    }
   
    private static JButton closebutton(JFrame frame,String panelname, Component panel) {
        JButton exit = help.newJButton("EXIT", Color.WHITE, 45,27);
        exit.setText("RELOAD");
        exit.addMouseListener(new MouseAdapter () {
            @Override public void mouseClicked( MouseEvent e) {
                jtp.removeAll();
                jtp.addTab(panelname, panel);
                log.log2("Info","Reload JTP");
            }});
        return exit;
    }
 

Zurück
Oben