Skip to content

Instantly share code, notes, and snippets.

@LuisFcoOrtiz
Created December 11, 2017 15:10
Show Gist options
  • Save LuisFcoOrtiz/49312fa507bfc16e03ac61f6041a9674 to your computer and use it in GitHub Desktop.
Save LuisFcoOrtiz/49312fa507bfc16e03ac61f6041a9674 to your computer and use it in GitHub Desktop.
JTable component modified to get all element from ResultSet Query | Componente JTable modificado para recoger los datos de una sentencia ResultSet
import java.awt.Color;
import java.awt.Component;
import java.beans.SimpleBeanInfo;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import javax.accessibility.Accessible;
import javax.swing.JTable;
import javax.swing.Scrollable;
import javax.swing.event.CellEditorListener;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.RowSorterListener;
import javax.swing.event.TableColumnModelListener;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableColumn;
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author manrique
*
* INSTRUCCIONES
* 1:se pasa
*/
public class JTableUserView extends javax.swing.JTable implements TableModelListener, Scrollable, TableColumnModelListener, ListSelectionListener, CellEditorListener, Accessible, RowSorterListener{
protected ResultSetMetaData resultSetMetaData;
protected ResultSet resultSetGiven;
protected DefaultTableModel tableModel;
protected int rowEntry, numberOfRows;
protected TableColumn tm; //for colours
protected JTableHeader header;
//constructor
public JTableUserView() throws SQLException {
super();
//get the model
}//end constructor
public void startTable() {
//get the model
tableModel = (DefaultTableModel) this.getModel();
//clean table
tableModel.setRowCount(0);
tableModel.setColumnCount(0);
}//start the table
public void createTheTable(ResultSet resultSet, Color backgroundHeader, Color foregroundHeader ) throws SQLException {
//CLEAN TABLE
tableModel.setRowCount(0);
tableModel.setColumnCount(0);
rowEntry=0;
//get the metadata
resultSetMetaData = resultSet.getMetaData();
//set the columns
int numberOfColumns = resultSetMetaData.getColumnCount();
for (int i=1;i<=numberOfColumns;i++) {
tableModel.addColumn(resultSetMetaData.getColumnName(i));
//to change the color for references
tm = this.getColumnModel().getColumn(0);
tm.setCellRenderer(new ColorColumnRenderer(Color.lightGray, Color.black));
}//loop in all columns
//get all the row
while (resultSet.next()) {
//add clean row
tableModel.addRow(new Object []{});
for(int column=1; column<=resultSetMetaData.getColumnCount(); column++) {
tableModel.setValueAt(resultSet.getString(column), rowEntry, column-1);
}
rowEntry++; //another row
}//loop in all the results
//change header colour (Example) Color.white
header = this.getTableHeader();
header.setBackground(backgroundHeader);
header.setForeground(foregroundHeader);
//number of rows
numberOfRows= tableModel.getRowCount();
}//END createTheTableUser
public int getNumberOfRows() {
try {
return numberOfRows;
} catch(NullPointerException ex) {
return 0;
}
}//get the number of rows
//FOR COLOURS
class ColorColumnRenderer extends DefaultTableCellRenderer{
Color bkgndColor, fgndColor;
public ColorColumnRenderer(Color bkgnd, Color foregnd) {
super();
bkgndColor = bkgnd;
fgndColor = foregnd;
}
public Component getTableCellRendererComponent
(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column)
{
Component cell = super.getTableCellRendererComponent
(table, value, isSelected, hasFocus, row, column);
cell.setBackground( bkgndColor );
cell.setForeground( fgndColor );
return cell;
}
}//end render for colors
}//end class
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment