Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

JTable abstract

$
0
0
Hello to all,
I have an AbstractTableModel and im trying to make my checkboxes to work..I have tried different things but i just cant get it :(/>


import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.AbstractTableModel;


public class Gui extends JFrame {
        
    private StudentList studentList = new StudentList();
          
    public Gui(){
        
        addToArrayList();
        setSize(1240,1024);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        makeLayout();
       
        setVisible(true);
    }
    
    public final void addToArrayList()
    {
        studentList.addStudent(new Student("Maria","Lopez",20,"001"));
        studentList.addStudent(new Student("Mark","Spenser",23,"002"));
        studentList.addStudent(new Student("George","Fiorks",21,"003"));
        studentList.addStudent(new Student("Michael","Perkens",25,"004"));   
    }
    
    public final void makeLayout(){  
        
        setLayout(new BorderLayout());   
        final Model model = new Model();
        final JTable table = new JTable();
        table.setModel(model);
        
        table.getSelectionModel().addListSelectionListener(new ListSelectionListener()
         {

            @Override
            public void valueChanged(ListSelectionEvent lse) {
                
               if( !lse.getValueIsAdjusting() )
               {
                    int row = table.getSelectedRow();
                    int column = table.getSelectedColumn();
                    
                   if(column == 4 && table.getValueAt(row, 4) == Boolean.TRUE)
                   {
                         table.setValueAt(Boolean.FALSE, row, 4);       
                   }
                   else
                   {
                       table.setValueAt(Boolean.TRUE,row,4);
                   }
               }  
            }    
         });
            add(new JScrollPane(table));
    }
  
    public class Model extends AbstractTableModel {     
        private String[] headers ={"Name","Surname","Age","Id",""};
        
        
        @Override
        public int getRowCount() {
            return studentList.getStudentList().size();
        }

        @Override
        public int getColumnCount() {
            return headers.length;
        }
        
        @Override
        public String getColumnName(int column) {
            return headers[column]; 
        }

        @Override
        public Object getValueAt(int row, int column) {
           
            if(row < 0 || row >= studentList.getStudentList().size()) {
                return null;
            }
            Student obj = studentList.getStudentList().get(row);
        switch(column)
        {
            case 0: return obj.getName();
            case 1: return obj.getSurName();
            case 2: return obj.getAge();
            case 3: return obj.getIdCode();  
            case 4: return Boolean.TRUE;
            default: return null;
        }
        }
        
         @Override
        public Class getColumnClass(int c){
            return getValueAt(0,c).getClass();
        }
         
        @Override
        public boolean isCellEditable(int row,int col)
        {
            if(col == 4){
                return true;
            }
            else{
                return false;
            }     
        }
    }      
    }




Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>