Как сделать getValueAt() при использовании AbstractTableModel

Я пытаюсь создать программу, которая показывает все файлы в папке temperary, используя AbstractTableModel, но как мне закодировать метод getValueAt(). Имена файлов должны быть в первом столбце, а путь к файлу должен быть во втором столбце. Я пока обнулил его, но может ли кто-нибудь показать мне мотыгу, которую я должен закодировать?

Это то, что я получил до сих пор:

public class UI extends JFrame {

private JPanel contentPane;
private JTable table;
File[] dir = new File(System.getProperty("java.io.tmpdir")).listFiles();

public static void main(String[] args) {

public UI() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 542, 422);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    contentPane.setLayout(null);

    JTabbedPane tabbedPane = new JTabbedPane(SwingConstants.TOP);
    tabbedPane.setBounds(0, 0, 526, 384);
    contentPane.add(tabbedPane);

    JPanel panel = new JPanel();
    tabbedPane.addTab("Temp Files", null, panel, null);
    panel.setLayout(null);

    final AbstractTableModel myAbstractTableModel = new AbstractTableModel() {

        @Override
        public int getColumnCount() {
            return 2;
        }

        @Override
        public int getRowCount() {
            return dir.length;
        }

        @Override
        public Object getValueAt(int arg0, int arg1) {
            return null;
        }


    };

    JScrollPane scrollPane = new JScrollPane();
    scrollPane.setBounds(10, 11, 402, 334);
    panel.add(scrollPane);

    table = new JTable();
    scrollPane.setViewportView(table);
    table.setModel(myAbstractTableModel);
}

}


person Piet Jetse    schedule 08.09.2013    source источник


Ответы (1)


В вашем примере arg0 — это row, а arg1 — это col, поэтому dir[arg0] — это File для каждого row. В вашей реализации getValueAt() возвращайте file.getName() или file.getPath(), как указано значением col. EnvTableTest — это связанный пример, в котором используются более описательные имена параметров.

person trashgod    schedule 08.09.2013