import java.awt.*; import java.awt.event.*; import java.util.Random; import java.util.Date; import java.text.*; import java.net.URL; import java.net.MalformedURLException; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.SimpleAttributeSet; import javax.swing.text.StyleConstants; import com.zfqjava.swing.*; import com.zfqjava.swing.cell.*; public class CellTypeDemo extends JDataGridBean { public CellTypeDemo() { super(); configure(); } private void configure() { final JDataGrid dataGrid = getDataGrid(); // dataGrid.putClientProperty("JDataGrid.generateHyperlinkEventForURLValue", Boolean.FALSE); final JButton a = new JButton("Restore Model..."); a.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { dataGrid.setModel(createModel()); } }); getToolBar(JDataGridBean.MAIN_TOOLBAR).add(a); } protected DataGridModel createModel() { DataGridModel model = new DefaultDataGridModel(100, 26); Random random = new Random(); // java.util.Date model.setValueAt("java.util.Date", 0, 0); model.setCellEditable(false, 0, 0); model.setColumnClass(Date.class, 0); for(int i=1; i<20; i++) { model.setValueAt(new Date(), i, 0); } // java.sql.Date model.setValueAt("java.sql.Date", 0, 1); model.setCellEditable(false, 0, 1); model.setColumnClass(Date.class, 1); for(int i=1; i<20; i++) { model.setValueAt(new java.sql.Date(2004-1990, i%12, i%32), i, 1); } // java.sql.Time model.setValueAt("java.sql.Time", 0, 2); model.setCellEditable(false, 0, 2); model.setColumnClass(Date.class, 2); for(int i=1; i<20; i++) { model.setValueAt(new java.sql.Time(i%24, i%60, i%60), i, 2); } // java.sql.Timestamp model.setValueAt("java.sql.Timestamp", 0, 3); model.setCellEditable(false, 0, 3); model.setColumnClass(Date.class, 3); for(int i=1; i<20; i++) { model.setValueAt(new java.sql.Timestamp(2004-1990, i%12, i%32, i%24, i%60, i%60, i), i, 3); } // java.net.URL URL url = null; try { url = new URL("http://www.zfqjava.com"); } catch (MalformedURLException e) { } // java.net.URL model.setValueAt("java.net.URL", 0, 4); model.setCellEditable(false, 0, 4); model.setColumnClass(URL.class, 4); for(int i=1; i<20; i++) { model.setValueAt(url, i, 4); } // java.lang.Number model.setValueAt("java.lang.Double", 0, 5); model.setCellEditable(false, 0, 5); model.setColumnClass(Double.class, 5); for(int i=1; i<20; i++) { model.setValueAt(new Double(i), i, 5); } // java.math.BigInteger model.setValueAt("java.math.BigInteger", 0, 5); model.setCellEditable(false, 0, 5); model.setColumnClass(java.math.BigInteger.class, 5); for(int i=1; i<20; i++) { model.setValueAt(new java.math.BigInteger(80, random), i, 5); } model.setValueAt("java.math.BigDecimal", 0, 6); model.setCellEditable(false, 0, 6); model.setColumnClass(java.math.BigDecimal.class, 6); for(int i=1; i<20; i++) { model.setValueAt(new java.math.BigDecimal(i), i, 6); } // java.lang.Boolean model.setValueAt("java.lang.Boolean", 0, 7); model.setCellEditable(false, 0, 7); model.setColumnClass(Boolean.class, 7); for(int i=1; i<20; i++) { model.setValueAt(new Boolean(i%2==0), i, 7); } // java.sql.Blob model.setValueAt("java.sql.Blob", 0, 8); model.setCellEditable(false, 0, 8); model.setColumnClass(java.sql.Blob.class, 8); // java.sql.Clob model.setValueAt("java.sql.Clob", 0, 9); model.setCellEditable(false, 0, 9); model.setColumnClass(java.sql.Clob.class, 9); return model; } public static void main(String[] args) { final CellTypeDemo demo = new CellTypeDemo(); demo.setDefaultCloseOperation(JBean.EXIT_ON_CLOSE); SwingUtilities.invokeLater(new Runnable() { public void run() { demo.showFrame(); demo.getDataGrid().requestFocus(); } }); } }