Example usage for javax.swing.table TableModel getValueAt

List of usage examples for javax.swing.table TableModel getValueAt

Introduction

In this page you can find the example usage for javax.swing.table TableModel getValueAt.

Prototype

public Object getValueAt(int rowIndex, int columnIndex);

Source Link

Document

Returns the value for the cell at columnIndex and rowIndex.

Usage

From source file:us.daveread.basicquery.BasicQuery.java

/**
 * Gets each cell of the selected row - if the object stored in the cell
 * is of type java.sql.Blob, the object is written to disk by calling
 * writeBlob(String, java.sql.Blob) on the DB connection.
 *//*  w w  w.ja  v  a 2 s .c  o m*/
private void saveBLOBs() {
    TableModel model;
    int selectedRow;
    String filesWritten;

    if (table.getSelectedRowCount() != 1) {
        userMessage(Resources.getString("errChooseOneRowText"), Resources.getString("errChooseOneRowTitle"),
                JOptionPane.ERROR_MESSAGE);
    } else {
        model = table.getModel();
        selectedRow = table.getSelectedRow();
        filesWritten = "";
        for (int col = 1; col < model.getColumnCount(); col++) {
            if (model.getValueAt(selectedRow, col) instanceof java.sql.Blob) {
                LOGGER.debug("Blob[" + (java.sql.Blob) model.getValueAt(selectedRow, col) + "]");
                filesWritten += writeBlob(model.getColumnName(col),
                        (java.sql.Blob) model.getValueAt(selectedRow, col)) + "\n";
            }
        }
        userMessage(Resources.getString("msgBLOBWrittenText", filesWritten),
                Resources.getString("msgBLOBWrittenTitle"), JOptionPane.INFORMATION_MESSAGE);
    }
}

From source file:us.daveread.basicquery.BasicQuery.java

/**
 * Gets the column name for the column that is being selected in the table
 * //w  w  w  .  j a va2  s.c  o  m
 * @return columns A string array with the Column Names and Values
 */
private String[][] getColumnNamesForTable() {
    String[][] columns;
    TableModel model;

    model = table.getModel();

    if (modeOfCurrentTable == Query.MODE_DESCRIBE) {
        columns = new String[model.getRowCount()][3];
        for (int i = 0; i < model.getRowCount(); ++i) {
            columns[i][0] = model.getValueAt(i, 0).toString();
            columns[i][1] = model.getValueAt(i, 1).toString(); // Type
            if (table.isRowSelected(i)) {
                columns[i - 1][2] = "Selected";
            } else {
                columns[i - 1][2] = null;
            }
        }
    } else {
        columns = new String[model.getColumnCount()][3];
        for (int i = 0; i < model.getColumnCount(); ++i) {
            columns[i][0] = model.getColumnName(i);

            // Remove type if present
            if (columns[i][0].indexOf("[") > -1) {
                columns[i][1] = columns[i][0].substring(columns[i][0].indexOf("[") + 1);
                columns[i][0] = columns[i][0].substring(0, columns[i][0].indexOf("[")).trim();
            } else {
                /**
                 * Todo: change column name/type design so that we can easily get the
                 * column type.
                 */
                columns[i][1] = "Number";
            }

            if (table.isColumnSelected(i)) {
                columns[i][2] = "Selected";
            } else {
                columns[i][2] = null;
            }
        }
    }

    return columns;
}

From source file:us.daveread.basicquery.BasicQuery.java

/**
 * Writes the data onto a file that is specified by the filePath
 * /* w  ww.  j a  v  a2s. co m*/
 * @param query
 *          The SQL statement
 * @param model
 *          The model for the current results
 * @param filePath
 *          A String that denotes the filepath
 * @param append
 *          Whether to append the current results into the file
 * 
 * @todo Make this handle other data types (especially Date/Time) better
 *       for cleaner import to spreadsheet.
 */
private void writeDataAsCSV(String query, TableModel model, String filePath, boolean append) {
    PrintWriter out;
    int row, col;
    boolean[] quote;
    boolean quoteThis;
    String temp;
    Object value;

    out = null;

    this.setCursor(new Cursor(Cursor.WAIT_CURSOR));
    (flashRunIndicator = new Thread(
            new FlashForeground(runIndicator, Color.red.brighter(), Color.lightGray, 5))).start();
    (timeRunIndicator = new Thread(new InsertTime(timeIndicator, new java.util.Date().getTime(),
            QUERY_EXECUTION_TIMER_UPDATE_DELAY_MS))).start();

    try {
        out = new PrintWriter(new FileWriter(filePath, append));

        messageOut("");
        messageOut(Resources.getString("msgStartExportToFile", filePath));

        // Output query
        if (!fileExportsRaw.isSelected()) {
            // Make it look like a comment using hash comment character
            out.print("#,");

            out.print("\"");
        }
        // out.print(getQuery().getSQL());
        out.print(query.replaceAll("\n", " "));
        if (!fileExportsRaw.isSelected()) {
            out.print("\"");
        }
        out.println();

        // Setup array to hold which columns need to be quoted
        quote = new boolean[model.getColumnCount()];

        // Output column headings - determine if column needs quotes
        for (col = 0; col < model.getColumnCount(); ++col) {
            if (col > 0) {
                out.print(",");
            }
            out.print("\"" + model.getColumnName(col) + "\"");

            /**
             * todo: use column type to set need for quotes
             */
            quote[col] = false;
        }
        out.println();

        // Output data
        for (row = 0; row < model.getRowCount(); ++row) {
            for (col = 0; col < model.getColumnCount(); ++col) {
                if (col > 0) {
                    out.print(",");
                }

                // Get the field content
                try {
                    value = model.getValueAt(row, col);
                    if (value == null) {
                        temp = "";
                    } else if (value instanceof java.sql.Timestamp) {
                        temp = Utility.formattedDate((java.sql.Timestamp) value);
                    } else {
                        temp = model.getValueAt(row, col).toString();
                        if (!fileExportsRaw.isSelected()) {
                            temp = temp.replace('"', '\'');
                            temp = temp.replace('\n', '~');
                        }
                    }
                } catch (Exception any) {
                    LOGGER.error("Failed to export data", any);

                    // Display error and move on
                    messageOut(Resources.getString("errFailDuringExport", any.getMessage()), STYLE_RED);
                    temp = "";
                }

                // Decide if quotes are needed:
                // -If the row is a known character type
                // -If this field contains a comma
                quoteThis = !fileExportsRaw.isSelected() && (quote[col] || temp.indexOf(",") > -1);

                // Output the field
                if (quoteThis) {
                    out.print("\"");
                }
                out.print(temp);
                if (quoteThis) {
                    out.print("\"");
                }
            }
            if (!fileNoCRAddedToExportRows.isSelected()) {
                out.println();
            }
        }

        // Assume that if writing multiple resultsets to file the
        // user would appreciate a separation line between them.
        if (append) {
            out.println("\n********");
        }

        messageOut(Resources.getString("msgEndExportToFile"));
    } catch (Exception any) {
        LOGGER.error("Unable to write data to file", any);
        messageOut(Resources.getString("errFailDataSave", any.toString()), STYLE_RED);
    } finally {
        if (out != null) {
            try {
                out.close();
            } catch (Exception any) {
                LOGGER.error("Failed while writing data to CSV file", any);
            }
        }
    }

    flashRunIndicator.interrupt();
    flashRunIndicator = null;
    timeRunIndicator.interrupt();
    timeRunIndicator = null;
    this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
}

From source file:vacationscheduler.UpcomingReservations.java

public void jTableToExcel() {

    try {/*w ww  .  j  a  v  a2  s. c o  m*/
        String fileName = "./excelAttempt.xls";

        TableModel model = jtable_upcomingReservations.getModel();
        FileWriter file = new FileWriter(fileName);

        for (int column = 0; column < model.getColumnCount(); column++) {
            file.write(model.getColumnName(column) + "\t");

        }

        file.write("\n");

        for (int i = 0; i < model.getRowCount(); i++) {
            for (int j = 0; j < model.getColumnCount(); j++) {
                file.write(model.getValueAt(i, j).toString() + "\t");
            }
            file.write("\n");
        }

        file.close();

        File file_file = new File(fileName);

        Desktop.getDesktop().open(file_file);

    } catch (IOException ex) {
        Logger.getLogger(UpcomingReservations.class.getName()).log(Level.SEVERE, null, ex);
    }

}