如何从CSV文件中筛选行并使用java在JTable上显示
我正在从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 这是我正在做的代码如何从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
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文件?在调用
行之前进行检查。当字符串中有数据时,添加()
?一种方法是使用表格行排序器
,它是一个表格。