I was having much trouble with JTable. Now, I still have it. How many
parameters we need to change, when we change some columns. Because of
its complicated, I try to
build a simple library to decrease that trouble. And perhaps, we can
use
it...
Requirements:
- we have read 
007. Register library, and download daniani.jar
- download 
derby.jar (database library), and register it to the 
project.
- download 
sample database (Java DB - Apache Derby 10.8.1.2).
On GoogleDrive page, choose menu: File -> Download. This file contain database=DANIANI_DB; user=daniani_user; password=daniani_pwd;
schema=SCH. Then extract it in a certain location.
Let's do it...
- Create a new JFrame (001. THE BEGINNING)
 
- Choose JTable component from Pallete, then drop it on our new
frame.
 
 
 
- Design it
 
 
 
- Click jTable1 in Inspector tab then right click to rename = dtble
 
 
 
- Set property autoResizeMode = OFF, and rowHeight=25
 
 
 
- Switch to view Source code, then insert this script below
initComponents():
 
       initComponents();
        try{
            Connection
dCon=null;
           
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
            dCon
= DriverManager.getConnection("jdbc:derby:"
                   
+ "yourDBfolderLocation/DANIANI_DB"
                   
+ ";user=daniani_user;password=daniani_pwd");
           
Table dtble = new Table();
           
dtble.initColumn();
           
dtble.addColumn("PRT.IDPARENT","idparent", false,
"text", 70, "");
           
dtble.addColumn("PRT.DINT","dint", false, "number", 50, "");
           
dtble.addColumn("PRT.DVARCHAR","dvarchar", false, "text", 120, "");
           
dtble.addColumn("PRT.DBOOLEAN","dboolean", true, "yesno", 90, false);
           
dtble.addColumn("PRT.DDECIMAL","decimal", true, "numberBD2", 50, "");
           
dtble.addColumn("PRT.DDATE","date", false, "date",
100, "");
           
dtble.addColumn("PRT.DTIMESTAMP","timestamp", false, "timestamp", 150, "");
           
dtble.addColumn("PRT.DCOLOR","color", false, "color",
80, "");
           
String sqlFrom="FROM SCH.PARENT PRT";
           
dtble.buildTable(tbl, false, sqlFrom, dCon, false);
            //-
render
           
tbl.setDefaultRenderer(Color.class, new daniani.ColorRenderer(true));
//to view color
           
dtble.cellFormatNumber(2, new String[]{"decimal"}); // to view fraction
by 2 scale
           
dtble.cellAlignment(SwingConstants.CENTER, 
                   
new String[]{"idparent", "date", "timestamp"}); // center alignment
        } catch(Exception cnfe){
           
System.out.println(cnfe);
        }
This should be work.
NOTE:
If the database connection is
failure, try to delete file db.lck in .../DANIANI_DB folder.
REFFERENCE (case-sensitive)
Syntax:
daniani.Table.addColumn(String FieldName, String ColumnName, boolean isEditableCell, String ColumnClass, String ColumnFormat, int ColumnWidth, Object DefaultValue);
 
| 
 | Column
Format | 
 | 
| 
 | text | store String
datatype | 
| 
 | date | view Date datatype
in dd-MM-yyyy | 
| 
 | dateYMD | view Date datatype
in yyyy-MM-dd | 
| 
 | dateMDY | view Date datatype
in MM-dd-yyyy | 
| 
 | date;ff | view Date datatype
in custom date-formatted, ex.: date;dd-yyyy-MM
 | 
| 
 | time | view Time datatype
in HH:mm:ss | 
| 
 | timestamp | view Timestamp
datatype in dd-MM-yyyy HH:mm:ss | 
| 
 | timestampYMD | view Timestamp
datatype in yyyy-MM-dd HH:mm:ss | 
| 
 | timestampMDY | view Timestamp
datatype in MM-dd-yyyy HH:mm:ss | 
| 
 | timestamp;ff | view Timestamp
datatype in custom timestamp-formatted, ex.: timestamp;dd-yyyy-MM HH:mm:ss
 | 
| 
 | yesno | cell with
checklist view | 
| 
 | number | store Integer
datatype | 
| 
 | numberF | store Float
datatype | 
| 
 | numberD | store Double
datatype | 
| 
 | numberBD | store BigDecimal
datatype | 
| 
 | numberBD0 | store BigDecimal
datatype with 0 scale when edited. | 
| 
 | numberBD2 | store BigDecimal
datatype with 2 scale when edited. | 
| 
 | numberBD;n | store BigDecimal
datatype with n scale when
edited, ex.: numberBD;4   -> store BigDecimal datatype with 4
scale when edited.
 | 
| 
 | color | view cell in a
certain color | 
Syntax:
daniani.Table.buildTable(JTable jtableComponent, boolean isAllowAddNewRow, String FromSQLClause, java.sql.Connection ConnectionName, boolean isHitEnterKeyToRightDirection);