Pages

Java JTable Quick Load Heavy Data With Handler Class

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.Vector;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author Cy.Co.Labs
 */
public class LoadBigDataToTable implements KeyListener{

    private final DefaultTableModel tableModel = new DefaultTableModel();

    ////////////////////////////////////////////////
    private static LoadBigDataToTable lbdtt;

    private LoadBigDataToTable() {
    }

    public static LoadBigDataToTable getLoadBigDataToTable() {
        System.gc();
        if (lbdtt == null) {
            lbdtt = new LoadBigDataToTable();
        }
        return lbdtt;
    }
    ////////////////////////////////////////////////

    public DefaultTableModel loadData(ResultSet rs) {
        // LOG.info("START loadData method");

        System.out.println("START loadData method");
        try {

            //ResultSet rs = jdbc.getdata("SELECT item.id,item.upc,item.name,item.name2,item_price.unit_value,item_price.unit_price,discount.amount FROM item LEFT JOIN item_price ON item.id=item_price.item_id LEFT JOIN discount ON item.id=discount.item_id");
            ResultSetMetaData metaData = rs.getMetaData();

            // Names of columns
            Vector<String> columnNames = new Vector<String>();
            int columnCount = metaData.getColumnCount();
            for (int i = 1; i <= columnCount; i++) {
                columnNames.add(metaData.getColumnName(i));
            }

            // Data of the table
            Vector<Vector<Object>> data = new Vector<Vector<Object>>();
            while (rs.next()) {
                Vector<Object> vector = new Vector<Object>();
                for (int i = 1; i <= columnCount; i++) {
                    vector.add(rs.getObject(i));
                }
                data.add(vector);
            }

            tableModel.setDataVector(data, columnNames);
        } catch (Exception e) {
            e.printStackTrace();
        }
        //button.setEnabled(true);

        System.out.println("END loadData method");
        return tableModel;
    }

    @Override
    public void keyTyped(KeyEvent e) {
        System.out.println("key t");
    }

    @Override
    public void keyPressed(KeyEvent e) {
        System.out.println("key p");
    }

    @Override
    public void keyReleased(KeyEvent e) {
        System.out.println("key r");
    }
}

To Use:

jTable1.setModel(LoadBigDataToTable.getLoadBigDataToTable().loadData(ResultSets.getResultSets().getRs1()));

No comments:

Post a Comment