Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从CSV文件中筛选行并使用java在JTable上显示_Java_Swing_File Io_Jtable_Rowfilter - Fatal编程技术网

如何从CSV文件中筛选行并使用java在JTable上显示

如何从CSV文件中筛选行并使用java在JTable上显示,java,swing,file-io,jtable,rowfilter,Java,Swing,File Io,Jtable,Rowfilter,我正在从csv文件中读取数据,并将其显示在JTable上。但我只想显示例如的选定行,其中DesignSize=M 设计颜色、设计尺寸、起始日期 橙色,L,2013-06-12 00:00:00.0 橙色,M,2013-06-12 00:00:00.0 橙色,S,2013-06-12 00:00:00.0 橙色,XL,2013-06-12 00:00:00.0 橙色,XXL,2013-06-12 00:00:00.0 这是我正在做的代码 public class Csv2TableModel ex

我正在从csv文件中读取数据,并将其显示在JTable上。但我只想显示例如的选定行,其中DesignSize=M

设计颜色、设计尺寸、起始日期

橙色,L,2013-06-12 00:00:00.0

橙色,M,2013-06-12 00:00:00.0

橙色,S,2013-06-12 00:00:00.0

橙色,XL,2013-06-12 00:00:00.0

橙色,XXL,2013-06-12 00:00:00.0

这是我正在做的代码

public class Csv2TableModel extends JPanel {

    public static DefaultTableModel createTableModel(
            Reader in, Vector<Object> headers) {
        DefaultTableModel model = null;
        Scanner s = null;
        Vector<Object> c;
        try {
            Vector<Vector<Object>> rows = new Vector<Vector<Object>>();
            s = new Scanner(in);
            while (s.hasNextLine()) {
                rows.add(new Vector<Object>(
                        Arrays.asList(s.nextLine().split("\\s*,\\s*", -1))));
            }
            if (headers == null) {
                headers = rows.remove(0);
                model = new DefaultTableModel(rows, headers);
            } else {
                model = new DefaultTableModel(rows, headers);
            }
            return model;
        } finally {
            s.close();
        }
    }

    public static void main(String[] args) {
        try {    
            String datafile = "C:\\seema\\CSV Files\\2013\\June\\12.csv";
            FileReader fin = new FileReader(datafile);
            DefaultTableModel m = createTableModel(fin, null);
            JFrame f = new JFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(new JScrollPane(new JTable(m)));
            f.setSize(1000, 400);
            f.setVisible(true);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
公共类Csv2TableModel扩展了JPanel{
公共静态DefaultTableModel createTableModel(
读取器输入(矢量标题){
DefaultTableModel=null;
扫描器s=null;
载体c;
试一试{
向量行=新向量();
s=新扫描仪(英寸);
而(s.hasNextLine()){
行。添加(新向量)(
asList(s.nextLine().split(\\s*,\\s*,-1));
}
if(headers==null){
标题=行。删除(0);
模型=新的DefaultTableModel(行、标题);
}否则{
模型=新的DefaultTableModel(行、标题);
}
收益模型;
}最后{
s、 close();
}
}
公共静态void main(字符串[]args){
试试{
String datafile=“C:\\seema\\CSV Files\\2013\\June\\12.CSV”;
FileReader fin=新的FileReader(数据文件);
DefaultTableModel m=createTableModel(fin,null);
JFrame f=新的JFrame();
f、 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f、 getContentPane();
f、 设置大小(1000400);
f、 setVisible(真);
}捕获(例外e){
e、 printStackTrace();
}
}
}

有没有办法按特定条件筛选CSV文件?

在调用
行之前进行检查。当
字符串中有数据时,添加()
?一种方法是使用
表格行排序器
,它是一个表格。