现在我的问题是我不想出现单词“ HELLO”(
这些是项目的要求-我想出现在文本文件中,但我不在jtable中)。我的文本文件是text_file,但是在我看来jtable中我需要两行而不是一行。我的表格视图是table_view
我的代码是

public class Table {

    JFrame f;
    Vector data;

    public Table() {

        try {
            File file = new File("test.txt");
            FileReader reader = null;
            try {
                reader = new FileReader(file);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
                System.exit(1);
            }
            f = new JFrame();

            String[] columnNames = {"Title", "Author", "isbn", "Date", "Kind"};

            DefaultTableModel model = new DefaultTableModel(columnNames, 0);

            BufferedReader infile = new BufferedReader(reader);

            String line = "";

            Vector<Object> row = new Vector<Object>(5);
            while ((line = infile.readLine()) != null) {
                if (line.isEmpty() || line.contains("HELLO"))
                {
                    model.addRow(row);
                    row = new Vector<Object>(5);
                } else {
                    row.add(line);
                }
            }
            if (row.size() != 0)
            {
                model.addRow(row);
            }

            JTable table = new JTable(model);
            JFrame f = new JFrame();
            f.setSize(550, 350);
            f.add(new JScrollPane(table));
            f.setVisible(true);
        } catch (IOException ex) {
            Logger.getLogger(Table.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

}

最佳答案

我本来要回复您的最新帖子,但您删除了它:https://stackoverflow.com/questions/62229550/populate-data-from-text-file-in-jtable

您不应该创建自定义TableModel。您没有在模型中添加任何新功能。添加数据并不添加功能。

这次您的方法更合理,但是仍然过于复杂。使用Vector的要点是,您可以在读取数据时将数据添加到Vector中,这大大简化了逻辑。

在创建组件的主要逻辑中,代码流应类似于:

String[] columnNames = {"Title", "Author", "isbn", "Date", "Kind", "Field"};
DefaultTableModel model = new DefaultTableModel(columnNames, 0); // create empty model

Vector<Object> row = new Vector<Object>(6);

 while ((line = infile.readLine()) != null)
{
    if (line.isEmpty()) // all book info has been read add the book to the model
    {
        model.addRow( row );
        row = new Vector<Object>(6);
    }
    else
        row.add( line );
}

if (row.size() != 0)  // add last book
    model.addRow( row );

JTable table = new JTable( model );
JScrollPane scrollPane = new JScrollPane( table );
frame.add(scrollPane);

关于java - 将文本文件中的数据填充到JTable中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62243149/

10-13 22:48