Remove file from a JList and computer [closed]

1

I have a frame with a list of values where multiple files are displayed.

AtthispointI'mdoingthedeletebuttonsentinel(lastpartcode),inwhichthegoalistodeletethefilefromthedisk,andthejlist.

publicvoidaddContentFrame(){frame.setLayout(newBorderLayout());//listadeficheiros-criadacomoinstanciadaclasseframe.add(listaFicheiros,BorderLayout.WEST);File[]files=newFile(diretoriaExecucao).listFiles(newFileFilter(){@Overridepublicbooleanaccept(Filef){returnf.getName().endsWith(".rtf");        //so aceita ficheiros acabados em .rtf
        }
    });

    //      Meter valores aleatorios na lista       
    //      model.addElement("A");
    //      model.addElement("B");
    //      model.addElement("C");

    for(int i = 0; i < files.length; i++){          //como nao e array percorremos o tamanho por inteiro do array
        model.addElement(files[i].getName());
    }

    //caixa texto onde vai ser apresentado o conteudo do ficheiro c/ ScrollArea 
    JTextArea caixaTexto = new JTextArea();
    JScrollPane scrollArea = new JScrollPane(caixaTexto);
    frame.add(scrollArea, BorderLayout.CENTER);

    listaFicheiros.addListSelectionListener(new ListSelectionListener() {

        @Override
        public void valueChanged(ListSelectionEvent e) {
            if(!e.getValueIsAdjusting()){
                String valorSelecionado =  (String) listaFicheiros.getSelectedValue(); 

                //Abrir ficheiro selecionado e meter output numa JTextArea!!
                try {       
                    caixaTexto.setText("");                     //limpo sempre a CT sempre que inicio a leitura de um ficheiro
                    BufferedReader br = new BufferedReader(new FileReader(diretoriaExecucao + "/" + valorSelecionado));

                    while(br.ready()){
                        String linha = br.readLine();
                        caixaTexto.append(linha + "\n");        //imprime continuamente as linhas na caixa texto
                    }
                    br.close();                                 //Ficheiro tem de ser sempre fechado
                } catch (IOException e2) {
                    e2.printStackTrace();
                }
            }
        }
    });

    //botoes - parte inferior janela
    JPanel painelBotoes = new JPanel();

    painelBotoes.setLayout(new GridLayout(1,3));

    JButton new1 = new JButton("new");

    new1.addActionListener(new ActionListener(){

        @Override
        public void actionPerformed(ActionEvent e){
            String nomeFicheiroNovo = JOptionPane.showInputDialog(frame, "Qual o nome do novo ficheiro?");

            //Criar um ficheiro novo e escrever para dentro dele

            File ficheiroNovo = new File(diretoriaExecucao + "/" + nomeFicheiroNovo + ".rtf");   //dentro e a diretoria que queremos gravar ficheiro (em execucao)

            //escrever para o ficheiro
            try {
                PrintWriter printWriter = new PrintWriter(ficheiroNovo);            //ESCREVE
                printWriter.println("Escreveu ficheiro?");                          //O que queremos escrever no ficheiro.

                model.addElement(ficheiroNovo.getName());               //adicionar ficheiro à lista para aparecer frame

                printWriter.close();
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            }
        }

    });

    JButton delete = new JButton("delete");

    //Passos: ver ficheiro selecionado, percorre lista, remove ficheiro disco e lista, atualizar lista de ficheiro(atualiza sozinha)
    delete.addActionListener(new ActionListener (){

        @Override
        public void actionPerformed(ActionEvent e){
            String ficheiroSelecionado = (String) listaFicheiros.getSelectedValue();

            for(int i = 0; i < files.length; i++){
                if(files[i].getName().equals(ficheiroSelecionado)){         
                    files[i].delete();
                    model.removeElement(ficheiroSelecionado);
                }
            }
        }
    });

Although I can delete the file and the sentinel does the purpose of it, the console still gives me the following error:

This error occurs on the line:

model.removeElement(ficheiroSelecionado);
    
asked by anonymous 18.10.2016 / 16:07

0 answers