-1

I want to add the objects in the Array List to the Jtable. there is no exception or error. objects are adding in the array list and are also printing on the console but not adding on JTable.... here is the code....

public class Table extends javax.swing.JFrame {

    ArrayList<Data>dataList = new ArrayList<Data>();

        public Table() {
            initComponents();
            connection ();
        }

        @SuppressWarnings("unchecked")
        // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
        private void initComponents() {

            jInternalFrame1 = new javax.swing.JInternalFrame();
            jScrollPane1 = new javax.swing.JScrollPane();
            jTable1 = new javax.swing.JTable();
            jButton1 = new javax.swing.JButton();
            jButton2 = new javax.swing.JButton();

            jInternalFrame1.setVisible(true);

            javax.swing.GroupLayout jInternalFrame1Layout = new javax.swing.GroupLayout(jInternalFrame1.getContentPane());
            jInternalFrame1.getContentPane().setLayout(jInternalFrame1Layout);
            jInternalFrame1Layout.setHorizontalGroup(
                jInternalFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 0, Short.MAX_VALUE)
            );
            jInternalFrame1Layout.setVerticalGroup(
                jInternalFrame1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGap(0, 0, Short.MAX_VALUE)
            );

            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            setPreferredSize(new java.awt.Dimension(600, 400));

            jTable1.setModel(new javax.swing.table.DefaultTableModel(
                new Object [][] {
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null},
                    {null, null, null, null, null, null, null}
                },
                new String [] {
                    "Date", "Node ID", "Voltage", "Temperature", "CO", "CO2", "Avability"
                }
            ) {
                Class[] types = new Class [] {
                    java.lang.Long.class, java.lang.Integer.class, java.lang.Double.class, java.lang.Double.class, java.lang.Integer.class, java.lang.Integer.class, java.lang.String.class
                };

                public Class getColumnClass(int columnIndex) {
                    return types [columnIndex];
                }
            });
            jTable1.setMaximumSize(new java.awt.Dimension(540, 380));
            jScrollPane1.setViewportView(jTable1);

            jButton1.setText("Fetch Records");

            jButton2.setText("Specific Node");

            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()
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButton1)
                    .addGap(18, 18, 18)
                    .addComponent(jButton2)
                    .addGap(87, 87, 87))
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGap(18, 18, 18)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jButton1)
                        .addComponent(jButton2))
                    .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
            );

            pack();
        }// </editor-fold>                        

        /**
         * @param args the command line arguments
         */

        public void connection (){
             for(int i=0;i<5; i++){
                 Data data = new Data(i, 5.5, 32.0, 50, 60);
                dataList.add(data);
                System.out.println(dataList.get(i).getId());
                System.out.println(dataList.get(i).getVoltage());
                System.out.println(dataList.get(i).getTemperature());
                System.out.println(dataList.get(i).getCO());
                System.out.println(dataList.get(i).getCO2());
            }
             DefaultTableModel model = new DefaultTableModel();
             JTable table = new JTable(model); 
            //model.setRowCount(dataList.size());
             Object rowData[]=new Object[5];
           int row = 0;
           for(int i=0; i< 5; i++){
                rowData[0]=dataList.get(i).getId();
                rowData[1]=dataList.get(i).getVoltage();
                rowData[2]=dataList.get(i).getTemperature();
                rowData[3]=dataList.get(i).getCO();
                rowData[4]=dataList.get(i).getCO2();
                model.addRow(rowData);
                            }

            table.setModel(model);
            table.setVisible(true);
        }

        public static void main(String args[]) {

            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new Table().setVisible(true);
                }
            });
            System.out.println();
        }
1

1 Answer 1

1

In your connection method you are creating a JTable and filling it with data, but never adding it to the GUI. I suspect that what you want to do is change the data in the existing JTable, right? If that's the case, you are not going about this correctly. You need to update the data in the existing JTable's table model or otherwise set the existing JTable's TableModel to your new TableModel

public void connection (){
     for(int i=0;i<5; i++){
         Data data = new Data(i, 5.5, 32.0, 50, 60);
        dataList.add(data);
        System.out.println(dataList.get(i).getId());
        System.out.println(dataList.get(i).getVoltage());
        System.out.println(dataList.get(i).getTemperature());
        System.out.println(dataList.get(i).getCO());
        System.out.println(dataList.get(i).getCO2());
    }
     DefaultTableModel model = new DefaultTableModel();

/// ***** HERE IS WHERE YOU CREATE THE NEW JTABLE AND NEVER ADD IT TO ANYTHING ***** ///

     JTable table = new JTable(model); 
    //model.setRowCount(dataList.size());
     Object rowData[]=new Object[5];
   int row = 0;
   for(int i=0; i< 5; i++){
        rowData[0]=dataList.get(i).getId();
        rowData[1]=dataList.get(i).getVoltage();
        rowData[2]=dataList.get(i).getTemperature();
        rowData[3]=dataList.get(i).getCO();
        rowData[4]=dataList.get(i).getCO2();
        model.addRow(rowData);
                    }

    table.setModel(model);
    table.setVisible(true);
}
Sign up to request clarification or add additional context in comments.

2 Comments

No, I just want to add all the objects in the Array List to Jtable.... how can I do this... will you modify my code ???
@sajidali "I just want to add all the objects in the Array List to Jtable" this tutorial will show you how: docs.oracle.com/javase/tutorial/uiswing/components/table.html

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.