TableFeature.java Source code

Java tutorial

Introduction

Here is the source code for TableFeature.java

Source

//A test of the JTable class using default table models and a convenience
//constructor. Resizing and selection defaults are altered.
//

import java.awt.BorderLayout;
import java.io.File;
import java.util.Date;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class TableFeature extends JFrame {

    String titles[] = new String[] { "Directory?", "File Name", "Read?", "Write?", "Size", "Last Modified" };

    public TableFeature() {
        super("Simple JTable Test");
        setSize(300, 200);
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        File pwd = new File(".");
        Object[][] stats = getFileStats(pwd);

        JTable jt = new JTable(stats, titles);
        jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
        jt.setColumnSelectionAllowed(true);

        JScrollPane jsp = new JScrollPane(jt);
        getContentPane().add(jsp, BorderLayout.CENTER);
    }

    public Object[][] getFileStats(File dir) {
        String files[] = dir.list();
        Object[][] results = new Object[files.length][titles.length];

        for (int i = 0; i < files.length; i++) {
            File tmp = new File(files[i]);
            results[i][0] = new Boolean(tmp.isDirectory());
            results[i][1] = tmp.getName();
            results[i][2] = new Boolean(tmp.canRead());
            results[i][3] = new Boolean(tmp.canWrite());
            results[i][4] = new Long(tmp.length());
            results[i][5] = new Date(tmp.lastModified());
        }
        return results;
    }

    public static void main(String args[]) {
        TableFeature tf = new TableFeature();
        tf.setVisible(true);
    }
}