Example usage for javax.swing.table DefaultTableModel getColumnName

List of usage examples for javax.swing.table DefaultTableModel getColumnName

Introduction

In this page you can find the example usage for javax.swing.table DefaultTableModel getColumnName.

Prototype

public String getColumnName(int column) 

Source Link

Document

Returns the column name.

Usage

From source file:dataviewer.DataViewer.java

private void renderData(DefaultTableModel model) {
    tb_data.setVisible(false);/*from   ww  w .j  a  v a 2 s.  c om*/

    tb_data.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
        @Override
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
                boolean hasFocus, int row, int column) {
            Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
            c.setBackground(row % 2 == 0 ? Color.WHITE : new Color(240, 240, 240));

            if (table.isCellSelected(row, column)) {
                c.setBackground(new Color(200, 0, 0));
                c.setForeground(Color.white);
            } else if (table.isRowSelected(row)) {
                c.setBackground(new Color(0, 0, 200));
                c.setForeground(Color.white);
            } else {
                c.setForeground(Color.black);
            }
            return c;
        }
    });

    tb_data.setGridColor(new Color(220, 220, 220));
    tb_data.setShowVerticalLines(true);
    tb_data.setModel(model);

    for (int i = 0; i < model.getColumnCount(); ++i) {
        if (model.getColumnName(i).equals("_N_")) {
            TableRowSorter trs = new TableRowSorter(model);
            trs.setComparator(i, new IntComparator());
            tb_data.setRowSorter(trs);
        }
    }

    for (int j = 0; j < tb_data.getColumnCount(); j++) {
        int width = 0;
        TableColumn col = tb_data.getColumnModel().getColumn(j);
        TableCellRenderer renderer = tb_data.getTableHeader().getDefaultRenderer();
        Component comp = renderer.getTableCellRendererComponent(tb_data, col.getHeaderValue(), false, false, 0,
                0);
        width = Math.max(comp.getPreferredSize().width, width);
        for (int i = 0; i < tb_data.getRowCount(); i++) {
            renderer = tb_data.getCellRenderer(i, j);
            comp = tb_data.prepareRenderer(renderer, i, j);
            width = Math.max(comp.getPreferredSize().width, width);
        }
        tb_data.getColumnModel().getColumn(j).setPreferredWidth(width + 20);
    }

    tb_data.setVisible(true);

}

From source file:captureplugin.CapturePlugin.java

/**
 * Check the programs after data update.
 *//*from w  w  w  .j  a  va  2s . c  om*/
public void handleTvDataUpdateFinished() {
    mNeedsUpdate = true;

    if (mAllowedToShowDialog) {
        mNeedsUpdate = false;

        DeviceIf[] devices = mConfig.getDeviceArray();

        final DefaultTableModel model = new DefaultTableModel() {
            public boolean isCellEditable(int row, int column) {
                return false;
            }
        };

        model.setColumnCount(5);
        model.setColumnIdentifiers(new String[] { mLocalizer.msg("device", "Device"),
                Localizer.getLocalization(Localizer.I18N_CHANNEL), mLocalizer.msg("date", "Date"),
                ProgramFieldType.START_TIME_TYPE.getLocalizedName(),
                ProgramFieldType.TITLE_TYPE.getLocalizedName() });

        JTable table = new JTable(model);
        table.getTableHeader().setReorderingAllowed(false);
        table.getTableHeader().setResizingAllowed(false);
        table.getColumnModel().getColumn(0).setCellRenderer(new DefaultTableCellRenderer() {
            public Component getTableCellRendererComponent(JTable renderTable, Object value, boolean isSelected,
                    boolean hasFocus, int row, int column) {
                Component c = super.getTableCellRendererComponent(renderTable, value, isSelected, hasFocus, row,
                        column);

                if (value instanceof DeviceIf) {
                    if (((DeviceIf) value).getDeleteRemovedProgramsAutomatically() && !isSelected) {
                        c.setForeground(Color.red);
                    }
                }

                return c;
            }
        });

        int[] columnWidth = new int[5];

        for (int i = 0; i < columnWidth.length; i++) {
            columnWidth[i] = UiUtilities.getStringWidth(table.getFont(), model.getColumnName(i)) + 10;
        }

        for (DeviceIf device : devices) {
            Program[] deleted = device.checkProgramsAfterDataUpdateAndGetDeleted();

            if (deleted != null && deleted.length > 0) {
                for (Program p : deleted) {
                    if (device.getDeleteRemovedProgramsAutomatically() && !p.isExpired() && !p.isOnAir()) {
                        device.remove(UiUtilities.getLastModalChildOf(getParentFrame()), p);
                    } else {
                        device.removeProgramWithoutExecution(p);
                    }

                    if (!p.isExpired()) {
                        Object[] o = new Object[] { device, p.getChannel().getName(), p.getDateString(),
                                p.getTimeString(), p.getTitle() };

                        for (int i = 0; i < columnWidth.length; i++) {
                            columnWidth[i] = Math.max(columnWidth[i],
                                    UiUtilities.getStringWidth(table.getFont(), o[i].toString()) + 10);
                        }

                        model.addRow(o);
                    }
                }
            }

            device.getProgramList();
        }

        if (model.getRowCount() > 0) {
            int sum = 0;

            for (int i = 0; i < columnWidth.length; i++) {
                table.getColumnModel().getColumn(i).setPreferredWidth(columnWidth[i]);

                if (i < columnWidth.length - 1) {
                    table.getColumnModel().getColumn(i).setMaxWidth(columnWidth[i]);
                }

                sum += columnWidth[i];
            }

            JScrollPane scrollPane = new JScrollPane(table);
            scrollPane.setPreferredSize(new Dimension(450, 250));

            if (sum > 500) {
                table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
                scrollPane.getViewport().setPreferredSize(
                        new Dimension(sum, scrollPane.getViewport().getPreferredSize().height));
            }

            JButton export = new JButton(mLocalizer.msg("exportList", "Export list"));
            export.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    JFileChooser chooser = new JFileChooser();
                    chooser.setDialogType(JFileChooser.SAVE_DIALOG);
                    chooser.setFileFilter(new FileFilter() {
                        public boolean accept(File f) {
                            return f.isDirectory() || f.toString().toLowerCase().endsWith(".txt");
                        }

                        public String getDescription() {
                            return "*.txt";
                        }
                    });

                    chooser.setSelectedFile(new File("RemovedPrograms.txt"));
                    if (chooser.showSaveDialog(
                            UiUtilities.getLastModalChildOf(getParentFrame())) == JFileChooser.APPROVE_OPTION) {
                        if (chooser.getSelectedFile() != null) {
                            String file = chooser.getSelectedFile().getAbsolutePath();

                            if (!file.toLowerCase().endsWith(".txt") && file.indexOf('.') == -1) {
                                file = file + ".txt";
                            }

                            if (file.indexOf('.') != -1) {
                                try {
                                    RandomAccessFile write = new RandomAccessFile(file, "rw");
                                    write.setLength(0);

                                    String eolStyle = File.separator.equals("/") ? "\n" : "\r\n";

                                    for (int i = 0; i < model.getRowCount(); i++) {
                                        StringBuilder line = new StringBuilder();

                                        for (int j = 0; j < model.getColumnCount(); j++) {
                                            line.append(model.getValueAt(i, j)).append(' ');
                                        }

                                        line.append(eolStyle);

                                        write.writeBytes(line.toString());
                                    }

                                    write.close();
                                } catch (Exception ee) {
                                }
                            }
                        }
                    }
                }
            });

            Object[] message = {
                    mLocalizer.msg("deletedText",
                            "The data was changed and the following programs were deleted:"),
                    scrollPane, export };

            JOptionPane pane = new JOptionPane();
            pane.setMessage(message);
            pane.setMessageType(JOptionPane.PLAIN_MESSAGE);

            final JDialog d = pane.createDialog(UiUtilities.getLastModalChildOf(getParentFrame()),
                    mLocalizer.msg("CapturePlugin", "CapturePlugin") + " - "
                            + mLocalizer.msg("deletedTitle", "Deleted programs"));
            d.setResizable(true);
            d.setModal(false);

            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    d.setVisible(true);
                }
            });
        }
    }
}

From source file:library.Form_Library.java

License:asdf

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
    JFileChooser chooser = new JFileChooser();
    int k = chooser.showSaveDialog(this);
    if (k == JFileChooser.APPROVE_OPTION) {
        File file = chooser.getSelectedFile();
        try {//w  w w  .j a va 2s.  com
            FileWriter out = new FileWriter(file + ".xls");
            BufferedWriter bu = new BufferedWriter(out);
            DefaultTableModel model = (DefaultTableModel) tbBookAdmin.getModel();
            for (int i = 0; i < model.getColumnCount(); i++) {
                bu.write(model.getColumnName(i) + "\t");
            }
            bu.write("\n");
            for (int i = 0; i < model.getRowCount(); i++) {
                for (int j = 0; j < model.getColumnCount(); j++) {
                    bu.write(model.getValueAt(i, j) + "\t");
                }
                bu.write("\n");
            }
            bu.close();
            JOptionPane.showMessageDialog(this, "Saved");
        } catch (IOException ex) {
            JOptionPane.showMessageDialog(this, "Can't Save");
        }
    }
}

From source file:org.apache.jmeter.save.CSVSaveService.java

/**
 * Method saves aggregate statistics as CSV from a table model. Same as
 * {@link #saveCSVStats(List, FileWriter, String[])} except that there is no
 * need to create a List containing the data.
 * //from  w  ww  . ja va  2 s. co m
 * @param model
 *            table model containing the data
 * @param writer
 *            output file
 * @param saveHeaders
 *            whether or not to save headers
 * @throws IOException
 *             when writing to <code>writer</code> fails
 */
public static void saveCSVStats(DefaultTableModel model, FileWriter writer, boolean saveHeaders)
        throws IOException {
    final char DELIM = ',';
    final char[] SPECIALS = new char[] { DELIM, QUOTING_CHAR };
    final int columns = model.getColumnCount();
    final int rows = model.getRowCount();
    if (saveHeaders) {
        for (int i = 0; i < columns; i++) {
            if (i > 0) {
                writer.write(DELIM);
            }
            writer.write(quoteDelimiters(model.getColumnName(i), SPECIALS));
        }
        writer.write(LINE_SEP);
    }
    for (int row = 0; row < rows; row++) {
        for (int column = 0; column < columns; column++) {
            if (column > 0) {
                writer.write(DELIM);
            }
            Object item = model.getValueAt(row, column);
            writer.write(quoteDelimiters(String.valueOf(item), SPECIALS));
        }
        writer.write(LINE_SEP);
    }
}

From source file:org.fhaes.gui.AnalysisResultsPanel.java

/**
 * Write the specified DefaultTableModel to the provided Excel spreadsheet
 * //from w  w w. jav a  2  s.com
 * @param dataSheet
 * @param model
 */
private void writeModelToXLSXSheet(Sheet dataSheet, DefaultTableModel model) {

    if (model == null) {
        Row headerrow = dataSheet.createRow(0);
        Cell cell = headerrow.createCell(0);
        cell.setCellValue("No results available");
        return;
    }

    if (model.getColumnCount() > excelRowColLimit || model.getRowCount() > excelRowColLimit) {
        Row headerrow = dataSheet.createRow(0);
        Cell cell = headerrow.createCell(0);
        cell.setCellValue("Number of rows and/or columns too large to write to Excel");
        return;
    }

    Row headerrow = dataSheet.createRow(0);

    // Write column headers
    for (int i = 0; i < model.getColumnCount(); i++) {
        Cell cell = headerrow.createCell(i);
        cell.setCellValue(model.getColumnName(i));
    }

    // Write data values
    for (int r = 0; r < model.getRowCount(); r++) {
        Row row = dataSheet.createRow(r + 1);

        for (int c = 0; c < model.getColumnCount(); c++) {
            Cell cell = row.createCell(c);

            String value;

            if (model.getValueAt(r, c) == null) {
                value = "";
            } else

            {
                value = model.getValueAt(r, c).toString();
            }

            try {
                Double d = Double.valueOf(value);
                cell.setCellValue(d);
                cell.setCellStyle(doubleStyle);

            } catch (NumberFormatException ex) {
                cell.setCellValue(value);
            }
        }
    }
}

From source file:org.isatools.isacreator.gui.formelements.SubForm.java

protected void removeColumn(int curColDelete) {

    if ((curColDelete == -1) || (curColDelete == 0)) {
        return;/* w w  w . j  a v  a 2  s .com*/
    }

    if (defaultTableModel.getColumnCount() == 2 && curColDelete == (defaultTableModel.getColumnCount() - 1)) {
        clearColumn(curColDelete);
        return;
    } else {
        clearColumn(curColDelete);
    }

    if (fieldType == FieldTypes.ASSAY && (dataEntryForm != null) && !uneditableRecords.contains(curColDelete)) {
        clearColumn(curColDelete);
        return;
    }

    DefaultTableModel model = (DefaultTableModel) scrollTable.getModel();

    // get the column. because 1 was added on previously to take account of the first column, we need to remove
    // it this time since the column indexes are now coming from the table.
    TableColumn col = scrollTable.getColumnModel().getColumn(curColDelete - 1);
    int columnModelIndex = col.getModelIndex();
    Vector data = model.getDataVector();
    Vector<String> colIds = new Vector<String>();

    for (int i = 0; i < model.getColumnCount(); i++) {
        colIds.addElement(model.getColumnName(i));
    }

    scrollTable.removeColumn(col);
    colIds.removeElementAt(columnModelIndex);

    // remove any data present in the column on deletion
    for (Object aData : data) {
        Vector row = (Vector) aData;
        row.removeElementAt(columnModelIndex);
    }

    model.setDataVector(data, colIds);

    // decrease each column index after deleted column by 1 so that indexes can be kept intact.
    Enumeration columnEnumeration = scrollTable.getColumnModel().getColumns();

    while (columnEnumeration.hasMoreElements()) {
        TableColumn c = (TableColumn) columnEnumeration.nextElement();

        if (c.getModelIndex() >= columnModelIndex) {
            c.setModelIndex(c.getModelIndex() - 1);
        }
    }

    if (fieldType == FieldTypes.ASSAY && uneditableRecords.contains(defaultTableModel.getColumnCount() - 1)) {
        uneditableRecords.remove(defaultTableModel.getColumnCount() - 1);
    }

    // update the model
    model.fireTableStructureChanged();
    updateTables();
}