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…
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);
}
});
}