Created
December 11, 2017 15:10
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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