Hi,I am doing model .clear but still, listbox holds duplicate entries. I have problem in the function:
private void btnDispSavCurrActionPerformed(java.awt.event.ActionEvent evt) Following is my JFrame derived class, Somebody please guide me. Zulfi. package com.mycompany.inher2rbuttarrlist2; import java.util.ArrayList; import javax.swing.ButtonGroup; import javax.swing.DefaultListModel; /** * * @author zulfi */ public class RButtArrListJFrame extends javax.swing.JFrame { ArrayList<Account> al_allAcc = new ArrayList<>(); //ArrayList<String> al_sav = new ArrayList<String>(); DefaultListModel <String> model = new DefaultListModel<String>(); Account acc1 = new Account(200.0, 100, "SSUET1", 's'); Account acc2 = new Account(300.0, 101, "SSUET2", 's'); Account acc3 = new Account(400.0, 102, "SSUET3", 's'); Account acc4 = new Account(500.0, 103, "SSUET4", 'c'); Account acc5 = new Account(600.0, 104, "SSUET5", 'c'); ButtonGroup group = new ButtonGroup(); /** * Creates new form RButtArrListJFrame */ public RButtArrListJFrame() { initComponents(); group.add(currAccRadBtn); group.add(savAccRadBtn); } void storeAllAccountInfoinArrayList(){ //https://www.delftstack.com/howto/java/adding-objects-to-arraylist/ al_allAcc.add(acc1); al_allAcc.add(acc2); al_allAcc.add(acc3); al_allAcc.add(acc4); al_allAcc.add(acc5); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { btnDispSavCurr = new javax.swing.JButton(); btnDispAll = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); jList1 = new javax.swing.JList<>(); savAccRadBtn = new javax.swing.JRadioButton(); currAccRadBtn = new javax.swing.JRadioButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); btnDispSavCurr.setText("Display Info Saving or Current"); btnDispSavCurr.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnDispSavCurrActionPerformed(evt); } }); btnDispAll.setText("Display All Accounts"); btnDispAll.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnDispAllActionPerformed(evt); } }); jScrollPane1.setViewportView(jList1); savAccRadBtn.setText("Saving Account"); currAccRadBtn.setText("Current Account"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addGap(81, 81, 81) .addComponent(btnDispSavCurr) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 143, Short.MAX_VALUE) .addComponent(btnDispAll, javax.swing.GroupLayout.PREFERRED_SIZE, 144, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGap(64, 64, 64) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(savAccRadBtn) .addComponent(currAccRadBtn)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(49, 49, 49)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(34, 34, 34) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btnDispSavCurr) .addComponent(btnDispAll)) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(28, 28, 28) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGap(55, 55, 55) .addComponent(savAccRadBtn) .addGap(51, 51, 51) .addComponent(currAccRadBtn))) .addContainerGap(210, Short.MAX_VALUE)) ); pack(); }// </editor-fold> private void btnDispAllActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: model.clear(); model.addElement(" " + acc1.getBalance() + " " + acc1.getNumber() + acc1.name+ acc1.accType); model.addElement(" " + acc2.getBalance() + " " + acc2.getNumber() + acc2.name+ acc2.accType); model.addElement(" " + acc3.getBalance() + " " + acc3.getNumber() + acc3.name+ acc3.accType); model.addElement(" " + acc4.getBalance() + " " + acc4.getNumber() + acc4.name+ acc4.accType); model.addElement(" " + acc5.getBalance() + " " + acc5.getNumber() + acc5.name+ acc5.accType); jList1.setModel(model); } private void btnDispSavCurrActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: storeAllAccountInfoinArrayList(); boolean iscurrAccRBSelected = currAccRadBtn.isSelected(); boolean issavAccRBSelected = savAccRadBtn.isSelected(); model.clear(); if(iscurrAccRBSelected){//Why in case of current Acc it is storing acc4 and acc5 twice? for (Account acc: al_allAcc) { //System.out.println("AccountTitle: "+acc.name+", balance "+acc.getBalance()+ "and mnumber is "+acc.getNumber()); if (acc.accType == 'c' ) model.addElement(" " + acc.getBalance() + " " + acc.getNumber() + acc.name+ acc.accType); jList1.setModel(model); } //code it //ask why we creat rbgroup if we are not using the grp var } else if(issavAccRBSelected){ for (Account acc: al_allAcc) { //System.out.println("AccountTitle: "+acc.name+", balance "+acc.getBalance()+ "and mnumber is "+acc.getNumber()); if (acc.accType == 's' ) model.addElement(" " + acc.getBalance() + " " + acc.getNumber() + acc.name+ acc.accType); jList1.setModel(model); } } } /** * @param args the command line arguments */ public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException ex) { java.util.logging.Logger.getLogger(RButtArrListJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (InstantiationException ex) { java.util.logging.Logger.getLogger(RButtArrListJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (IllegalAccessException ex) { java.util.logging.Logger.getLogger(RButtArrListJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } catch (javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(RButtArrListJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new RButtArrListJFrame().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton btnDispAll; private javax.swing.JButton btnDispSavCurr; private javax.swing.JRadioButton currAccRadBtn; private javax.swing.JList<String> jList1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JRadioButton savAccRadBtn; // End of variables declaration }