Błedy podczas ort! JFileChooser

0

Nie mogę pozbyć się błędów wyrzucanych na konsole np. java.lang.IndexOutOfBoundsException oraz Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException. Błędy te wyskakują po chwili przeglądania katalogów czyli w normalnym użytkowaniu JFileChossera. Używam JFileChoosera w podpisanym Applecie. Jeśli macie chwile czasu możecie skompilować poniższy testowy kod (oraz podpisać) i poszperać po katalogach np. Moje Dokumenty i zerknijcie na te błędy.


import java.applet.Applet;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileFilter;

public class Test extends Applet{
    private String sciezka;
    private JFileChooser otworz =  new JFileChooser();
    @Override
    public void init() {
        otworz();
    }
    public void otworz(){
    otworz.setDialogTitle ("Otwórz plan ...");
    otworz.setMultiSelectionEnabled (false);
    otworz.setFileSelectionMode (JFileChooser.FILES_ONLY);
    otworz.setFileFilter(new FileFilter() {

            @Override
            public boolean accept(File f) {
                String nazwa=f.getName().toLowerCase();
                return    f.isDirectory() || nazwa.endsWith(".gif") || nazwa.endsWith(".jpg") || nazwa.endsWith(".png") ;
            }
            @Override
            public String getDescription() {
                return "Plan (*.jpg; *.gif; *.png)";                       
            }

            
        });    
 int r = otworz.showOpenDialog(null);
        
    if (r == JFileChooser.APPROVE_OPTION){    
       sciezka= otworz.getSelectedFile().getPath();      
    }
    else {sciezka = null;}
  }
    
 public String get_Path(){
        return sciezka;
  }
 public String get_Name(){
     return otworz.getSelectedFile().getName();
 }
}

Wielkie dzięki za POMOC :)

0

ja bym obstawial ze blad wyskakuje z metody accept(File f). sprawdzilbym co zwraca f.getName(), moze null, albo pusty łańcuch znaków z ktorym nie radzi sobie metoda zmniejszajaca literki

0

Chyba źle obstawiasz - jak nie ma filtru występuje ten sam błąd. @kowal_m się powtarza, miałem więc okazję wcześniej przetestować. To że pojawia się wyjątek w niczym nie przeszkadza, aplet działa. Wystarczy wyjątek zignorować.

    //------------------------
    public void actionPerformed(ActionEvent ae)
    {
        if(fc==null)
        {
            fc=new JFileChooser();
        }
        try
        {
            if (fc.showOpenDialog(this)==JFileChooser.APPROVE_OPTION)
            {
                // tutaj obsługa wybranego pliku
            }
        }
        catch(IndexOutOfBoundsException e)
        {
        }
    }
0

Raczej nie do końca dobrze działa zobacz jak już na konsole wywali Ci błąd to przeglądaj dalej katalogi rób wstecz itp a zobaczysz, że coś jakby z odświeżaniem jest nie tak ? Czy ktoś może miał już z takim czymś problem w appletach ?

0

Moim zdaniem błąd jest w JVM, jak ci bardzo doskwiera to go zgłoś.

1 użytkowników online, w tym zalogowanych: 0, gości: 1