JTable display
In the below code I'm trying to display two fields (String and Date),
what happens is I'm not able to get the desired display of date in the
JTable. Can any one help me in getting the date displayed like "H:m |
dd-MM-yyyy"?
Thanks,
Abbas
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class tableTest {
public JFrame mainFrame = new JFrame("Java Task Manager");
public JPanel mainPanel = new JPanel();
public JTable mainTable = new JTable();
public DefaultTableModel defaultTableModel = new DefaultTableModel(){
public Class getColumnClass(int c){
return getValueAt(0,c).getClass();
}
};
public class CustomDate extends Date {
public CustomDate(){
}
public CustomDate(long arg0){
super(arg0);
}
public String toString(){
SimpleDateFormat sl = new SimpleDateFormat("H:m | dd-MMM-yyyy");
return sl.format(this);
}
}
public void showUI(){
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.getContentPane().add(mainPanel);
mainPanel.setLayout(new BoxLayout(mainPanel,BoxLayout.X_AXIS));
mainPanel.setLayout(new BoxLayout(mainPanel,BoxLayout.Y_AXIS));
mainPanel.add(new JScrollPane(mainTable));
mainTable.setModel(defaultTableModel);
String[] cid = {"Name","Date"};
defaultTableModel.setColumnIdentifiers(cid);
String[] nms = {"a","ss","de","des","fes"};
Calendar cl = Calendar.getInstance();
Date[] dts = new Date[5];
//1
cl.set(2008, Calendar.JANUARY, 1, 12, 44);
dts[0] = new CustomDate(cl.getTimeInMillis());
//2
cl.set(2008, Calendar.FEBRUARY, 22, 10, 12);
dts[1] = new CustomDate(cl.getTimeInMillis());
//3
cl.set(2008, Calendar.MARCH, 1, 1, 2);
dts[2] = new CustomDate(cl.getTimeInMillis());
//4
cl.set(2008, Calendar.APRIL, 1, 1, 32);
dts[3] = new CustomDate(cl.getTimeInMillis());
//5
cl.set(2008, Calendar.MAY, 1, 13, 14);
dts[4] = new CustomDate(cl.getTimeInMillis());
for(int i=0;i<5;i++){
Object[] ob= {nms[i],dts[i]};
defaultTableModel.addRow(ob);
}
mainTable.setAutoCreateRowSorter(true);
mainFrame.pack();
mainFrame.setResizable(false);
mainFrame.setVisible(true);
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
tableTest ts = new tableTest();
ts.showUI();
}
}