Probleme mit JFileChooser und Filter

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo, hab folgendes Problem, und zwar wollen die filechooser die filter nicht annehemen:

währe nett, wenn jemand helfen könnte, danke im vorraus

Code:
   public void OpenButtonActionPerformed(ActionEvent evt) {    //OpenButton
      JFileChooser fc = new JFileChooser();
      fc.showOpenDialog( null );
      File file = fc.getSelectedFile();
      fc.setFileFilter(new javax.swing.filechooser.FileFilter(){
         public boolean accept( File f ){
            return f.isDirectory() || f.getName().toLowerCase().endsWith( ".jef" );
         }
         public String getDescription(){
           return "JEditor-Projekte(*.jep)";
         }
      });


      try {
        FileInputStream fis = new FileInputStream (file.getPath());
        System.out.println(file.getPath());
        ObjectInputStream ois = new ObjectInputStream (fis);
        doc = (StyledDocument)ois.readObject();
        ois.close();
        //jTextPane1.setStyledDocument(doc);
        textpanes.get(jTabbedPane1.getSelectedIndex()).setStyledDocument(doc);
        // beim schließen daruaf achten, textpane aus list zu entfernen

      }
      catch (Exception exc) {
        System.out.println(exc);
      }
   }

   public void SaveButtonActionPerformed(ActionEvent evt) {     //SaveButton
      JFileChooser fc = new JFileChooser();
      fc.showSaveDialog(null);
      fc.setFileFilter(new javax.swing.filechooser.FileFilter(){
         public boolean accept( File f ){
            return f.isDirectory() || f.getName().toLowerCase().endsWith( ".jef" );
         }
         public String getDescription(){
           return "JEditor-Projekte(*.jep)";
         }
      });

      File file = fc.getSelectedFile();

      try{
         FileOutputStream fos = new FileOutputStream(file.getPath());
         ObjectOutputStream oos = new ObjectOutputStream(fos);
         oos.writeObject(textpanes.get(jTabbedPane1.getSelectedIndex()).getStyledDocument());
         oos.close();
         fos.close();
      }
      catch (FileNotFoundException exc) {
         System.out.println("File Not Found: " + file.getName());
      }
      catch (IOException exc) {
         System.out.println("IOException: " + file.getName());
      }

   }
 
du hast natürlich in beiden sachen recht, aber warum wirft er jetzt immer eine nullpointerexeption. hat jemand eine idee woran das liegen kann?
 
wo wirft er die denn? die stacktrace ausgabe is immer was feines 😉
 
stacktrace sagt folgendes:

  • java.lang.NullPointerException
    at Application.OpenButtonActionPerformed(Application.java:404)
    at Application$2.actionPerformed(Application.java:142)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
    at java.awt.Component.processMouseEvent(Component.java:6038)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
    at java.awt.Component.processEvent(Component.java:5803)
    at java.awt.Container.processEvent(Container.java:2058)
    at java.awt.Component.dispatchEventImpl(Component.java:4410)
    at java.awt.Container.dispatchEventImpl(Container.java:2116)
    at java.awt.Component.dispatchEvent(Component.java:4240)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
    at java.awt.Container.dispatchEventImpl(Container.java:2102)
    at java.awt.Window.dispatchEventImpl(Window.java:2429)
    at java.awt.Component.dispatchEvent(Component.java:4240)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
 
das wäre

Code:
FileInputStream fis = new FileInputStream (file.getPath());
ich kann da aber keienn fehler entdecken. der komplette code steht oben. ich weiß ich stell mich gerade etwas unbeholfen an... 😳
 
ja, aber wieso ist es null? ich kann mir sogar den pfad ausgeben lassen un der ist korret.
 
Ich kann deine Angaben nicht überprüfen und ich kann die Zeilennummer nicht überprüfen. Ich kann dir nur sagen, dass es in dieser Zeile nur eine Möglichkeit gibt bei der eine NPE fliegen kann.
 
ich habe es herausgefunden und zwar liegt es an der erihenfolge von Filfefilter und showSaveDialog bzw schoOpendialog. wenn ich beide vertausce funktioniert der filefileter zwar nicht aber es gibt keine exeptions mehr.

hat jemand eine andere idee für die filefilter?

hat jemand eine idee wie man den namen des reigsterreiters verändern kann beim speichern?

Code:
  java.util.List<JTextPane> textpanes = new LinkedList<JTextPane>();

   public void NewButtonActionPerformed(ActionEvent evt) {           //NewButton
      JTextPane newPane = new JTextPane();

      jTabbedPane1.addTab( "Unbekannt", new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
                                      JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED).add(newPane));
      textpanes.add(newPane);
   }

das problem ist, dass es nicht sowas wie textpanes.get(jTabbedPane1.getSelectedIndex()).setTitel() gibt
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben