table.py

#!/usr/bin/jython
# table.py -- simple demo of JTable in Jython

import java.awt as awt
import java.lang as lang
import javax.swing as swing
import os
import glob
import time
import stat

def fmttime(n):
    """Format an epochal time in the local timezone."""
    return time.strftime("%Y-%m-%d %H:%M",time.localtime(n))

def fstat(f):
    """Return a list of 'interesting' facts about file 'f'."""
    t = os.stat(f)
    return [f,t[stat.ST_SIZE],fmttime(t[stat.ST_MTIME])]

def exit(event):
    """Exit the JVM."""
    lang.System.exit(0)

ss = awt.Toolkit.getDefaultToolkit().getScreenSize()
win = swing.JFrame("Tables",size=(400,300),windowClosing=exit)
win.setLocation(100,50)

# Create some data for our table.
cells = []
for x in glob.glob("*"):
    cells.append(fstat(x))
colnames = ['name','size','modified']

t = swing.JTable(cells,colnames)
s = swing.JScrollPane(t)
win.contentPane.add(s)
win.show()