Ajuda com JFrame/JButton!

Oi, boa noite!

Estou fazendo um exercício em que eu tenho 3 botões
ADICIONAR
EDITAR
REMOVER

Tenho tbm uma JList e uma JTextField…
Assim, eu preciso:

1 - adicionar na lista o que eu escrever na caixa de texto; (funciona)
2 - editar um item da lista selecionado; (funciona meia boca, pela metade, bem estranho)
3 - Fazer com que no momento que eu clicar no editar, o botão mude pra ‘salvar’ e eu não possa fazer mais nada até salvar a edição; (o texto do botão muda, mas a caixa da lista redimensiona e o botão não volta a ser ‘editar’)

Eu gostaria que quando eu selecionar algum item para ser editado, ele apareça na JTextField…
Se alguém puder me dar algumas dicas, eu agradeço…
:stuck_out_tongue:

package colecoes;

import javax.swing.DefaultListModel;

public class BlocoDeNotasJFrame extends javax.swing.JFrame {
   BlocoDeNotas bloco;//espécie de banco de dados
   DefaultListModel modeloLista;
//   JButton salvar = new JButton();

    public BlocoDeNotasJFrame() {
        initComponents();
        bloco = new BlocoDeNotas("Meu bloco de notas");
        modeloLista = new DefaultListModel();
        lstNotas.setModel(modeloLista);
    }
    public void carregarNotas(){
        //ler as notas do bloco e add na lista
        modeloLista.removeAllElements();
        for(int i=0; i<bloco.getNumeroDeNotas(); i++){
            modeloLista.addElement(bloco.getNota(i));      
        }
    }
    public void editarNotas(){
        //editar as notas do bloco e add denovo na lista        
        
        if (lstNotas.getSelectedIndex()!=-1){
            modeloLista.getElementAt(lstNotas.getSelectedIndex());
            for(int i=0; i<bloco.getNumeroDeNotas(); i++){
            modeloLista.set(lstNotas.getSelectedIndex(), bloco.getNota(i));
            }
        }
    }
    public void removerNota(){
        int[] selecionados = lstNotas.getSelectedIndices();  
                 int size = selecionados.length-1;  
                   
                 for(int i=size;i>=0;i--)  
                 {  
                     modeloLista.remove(selecionados[i]);  
                 }  
    }
    public void mudaTextoBtn(){
        btnEditar.setText("Salvar");
    }
   
    @SuppressWarnings("unchecked")
                       

private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {                                       
    bloco.addNota(txtDescricao.getText());
    this.carregarNotas();
    txtDescricao.setText(null);

}                                      

private void btnEditarActionPerformed(java.awt.event.ActionEvent evt) {                                          
    this.mudaTextoBtn();

    bloco.setNota(lstNotas.getSelectedIndex(), txtDescricao.getText());
    this.editarNotas();
    txtDescricao.setText(null);

}                                         

private void btnRemoverActionPerformed(java.awt.event.ActionEvent evt) {                                           
    this.removerNota();
}                                          

    
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new BlocoDeNotasJFrame().setVisible(true);
            }
        });
    }