读取文件并将数据从文件发送到JTable

时间:2012-11-05 09:08:05

标签: java swing file-io jtable tablemodel

public void showTotalSummary()
        {
            JFrame totalSummary = new JFrame("Total Leave Credit Summary");
            totalSummary.setSize(970, 523);
            totalSummary.setResizable(false);
            totalSummary.setLocationRelativeTo(null);
            totalSummary.setVisible(true);              

            panelTotalSummary = new JPanel();               
            panelTotalSummary.setBorder ( (Border) new TitledBorder ( new EtchedBorder (), "Display Area" ) );
            totalSummary.add(panelTotalSummary);

            String[] headings = {"Employee No.", "Employee Names", "Vacation Leave", "Tardiness", "Sick Leave", "Nonattendances", "Total Leave Earned "};                   

            String [][] data = {{"01", "Adlawan","10.50","2.50","20", "4", "30.50"},
                                {"02","Angeles","20.10","5.90","25","6","45.10"},
                                {"03","Benenoso","30.70","7.60","34","8","64.70"},
                                {"04","Bermas","20","4.10","25","3","45"}};

            JTable totalSummaryTable = new JTable(data, headings);              
            totalSummaryTable.getTableHeader().setFont( new Font( "Tahoma" , Font.BOLD, 12 ));
            Font f = new Font("Arial", Font.ITALIC, 13);                    
            totalSummaryTable.setFont(f);           
            totalSummaryTable.setGridColor(Color.BLUE);
            totalSummaryTable.setPreferredScrollableViewportSize(new Dimension(900, 400));
            totalSummaryTable.setFillsViewportHeight(true);

            JScrollPane jcp = new JScrollPane(totalSummaryTable);               
            jcp.setVerticalScrollBarPolicy ( ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS );   
            panelTotalSummary.add(jcp); 

        }

使用这些代码我能够将数据发布到我的JTable。我的问题是我如何从文件中读取从该文件获取数据并将数据发送到JTable的一行?我知道如何从文件中读取并将这些数据发送到JTextField。我将如何执行相同的过程,但不是将数据发送到JTextField,我希望将文件中的数据从JTabel发送到一行。任何人持有的任何人都将非常感激。

1 个答案:

答案 0 :(得分:3)

您需要做的是实现自己的 TableModel 。有关"How to Use Tables"的本教程将有助于理解表在Swing中的工作方式。

基本上,您需要做的是创建一个扩展AbstractTableModel的类,并至少为以下三种方法提供实现:

public int getRowCount();
public int getColumnCount();
public Object getValueAt(int row, int column);

您可以使用模型使其可以将数据保存在数组,矢量或哈希映射中,也可以从外部源获取数据,例如读取文件并从中获取数据。