Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
如何在javafx中读取csv文件时仅显示一个或几个选定的列值_Java_Csv_User Interface_Javafx - Fatal编程技术网

如何在javafx中读取csv文件时仅显示一个或几个选定的列值

如何在javafx中读取csv文件时仅显示一个或几个选定的列值,java,csv,user-interface,javafx,Java,Csv,User Interface,Javafx,我正在编写一个个人程序,可以读取CSV文件,然后获取该信息并以用户友好的格式显示 所以我的问题是,我如何在JavaFX中以CSV表格格式显示该行的第4、第5、第6列和第10列值 例如,我的CSV表如下所示: 我希望它能显示出这样的东西 monostamp:[值] lat:[价值] 并且该值与其他行相对应 我有在csv中读取并在Tableview中显示所有行和列的代码,但不太确定如何选择要显示的特定列和行 package sample; import java.io.BufferedRead

我正在编写一个个人程序,可以读取CSV文件,然后获取该信息并以用户友好的格式显示

所以我的问题是,我如何在JavaFX中以CSV表格格式显示该行的第4、第5、第6列和第10列值

例如,我的CSV表如下所示:

我希望它能显示出这样的东西

monostamp:[值]

lat:[价值]

并且该值与其他行相对应

我有在csv中读取并在Tableview中显示所有行和列的代码,但不太确定如何选择要显示的特定列和行

 package sample;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
import java.lang.String;

public class readCSV extends Application {

    public class Record {
        //Assume each record have 6 elements, all String

        private SimpleStringProperty f1, f2, f3, f4, f5, f6,f7,f8,f9,f10,f11,f12;

        public String getF1() {
            return f1.get();
        }

        public String getF2() {
            return f2.get();
        }

        public String getF3() {
            return f3.get();
        }

        public String getF4() {
            return f4.get();
        }

        public String getF5() {
            return f5.get();
        }

        public String getF6() {
            return f6.get();
        }

        public String getF7() {
            return f7.get();
        }

        public String getF8() {
            return f8.get();
        }

        public String getF9() {
            return f9.get();
        }

        public String getF10() {
            return f10.get();
        }

        public String getF11() {
            return f11.get();
        }

        public String getF12() {
            return f12.get();
        }

        Record(String f1, String f2, String f3, String f4,
               String f5, String f6,String f7, String f8, String f9, String f10,
               String f11, String f12) {
            this.f1 = new SimpleStringProperty(f1);
            this.f2 = new SimpleStringProperty(f2);
            this.f3 = new SimpleStringProperty(f3);
            this.f4 = new SimpleStringProperty(f4);
            this.f5 = new SimpleStringProperty(f5);
            this.f6 = new SimpleStringProperty(f6);
            this.f7 = new SimpleStringProperty(f7);
            this.f8 = new SimpleStringProperty(f8);
            this.f9 = new SimpleStringProperty(f9);
            this.f10 = new SimpleStringProperty(f10);
            this.f11 = new SimpleStringProperty(f11);
            this.f12 = new SimpleStringProperty(f12);
        }

    }

    private final TableView<Record> tableView = new TableView<>();

    private final ObservableList<Record> dataList
            = FXCollections.observableArrayList();

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("flight logs panel");

        Group root = new Group();

        TableColumn columnF1 = new TableColumn("f1");
        columnF1.setCellValueFactory(
                new PropertyValueFactory<>("f1"));

        TableColumn columnF2 = new TableColumn("f2");
        columnF2.setCellValueFactory(
                new PropertyValueFactory<>("f2"));

        TableColumn columnF3 = new TableColumn("f3");
        columnF3.setCellValueFactory(
                new PropertyValueFactory<>("f3"));

        TableColumn columnF4 = new TableColumn("f4");
        columnF4.setCellValueFactory(
                new PropertyValueFactory<>("f4"));

        TableColumn columnF5 = new TableColumn("f5");
        columnF5.setCellValueFactory(
                new PropertyValueFactory<>("f5"));

        TableColumn columnF6 = new TableColumn("f6");
        columnF6.setCellValueFactory(
                new PropertyValueFactory<>("f6"));


        TableColumn columnF7 = new TableColumn("f7");
        columnF7.setCellValueFactory(
                new PropertyValueFactory<>("f7"));

        TableColumn columnF8 = new TableColumn("f8");
        columnF8.setCellValueFactory(
                new PropertyValueFactory<>("f8"));

        TableColumn columnF9 = new TableColumn("f9");
        columnF9.setCellValueFactory(
                new PropertyValueFactory<>("f9"));

        TableColumn columnF10 = new TableColumn("f10");
        columnF10.setCellValueFactory(
                new PropertyValueFactory<>("f10"));

        TableColumn columnF11 = new TableColumn("f11");
        columnF11.setCellValueFactory(
                new PropertyValueFactory<>("f11"));

        TableColumn columnF12 = new TableColumn("f12");
        columnF12.setCellValueFactory(
                new PropertyValueFactory<>("f12"));


        tableView.setItems(dataList);
        tableView.getColumns().addAll(
                columnF1, columnF2, columnF3, columnF4, columnF5, columnF6,
                columnF7, columnF8, columnF9, columnF10, columnF11, columnF12);

        VBox vBox = new VBox();
        vBox.setSpacing(100);
        vBox.getChildren().add(tableView);

        root.getChildren().add(vBox);


        primaryStage.setScene(new Scene(root, 1000, 500));
        //primaryStage.show();

        readCSV();
    }

    private void readCSV() {

        String CsvFile = "C:\\Users\\Jack Vu\\IdeaProjects\\Flight_panel/flight_log.csv";
        String FieldDelimiter = ",";

        BufferedReader br;

        try {
            br = new BufferedReader(new FileReader(CsvFile));

            String line;
            while ((line = br.readLine()) != null) {
                String[] fields = line.split(FieldDelimiter, -1);

                Record record = new Record(fields[0], fields[1], fields[2],
                        fields[3], fields[4], fields[5],fields[6], fields[7], fields[8],
                        fields[9], fields[10], fields[11]);
                dataList.add(record);

            }

        }

//        try {
//            br = new BufferedReader(new FileReader(CsvFile));
//
//            String line;
//            while ((line = br.readLine()) != null) {
//                if (line == "monoStamp"){
//                   System.out.print("here");
//                }
//
//            }
//
//        }
catch (FileNotFoundException ex) {
            Logger.getLogger(readCSV.class.getName())
                    .log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(readCSV.class.getName())
                    .log(Level.SEVERE, null, ex);
        }

    }

//
//    private void displayColumn(){
//        String CsvFile = "C:\\Users\\Jack Vu\\IdeaProjects\\Flight_panel/flight_log.csv";
//        String FieldDelimiter = ",";
//
//        BufferedReader br;
//        
//
//
//    }

    public static void main(String[] args) {
        launch(args);
    }

}
包装样品;
导入java.io.BufferedReader;
导入java.io.FileNotFoundException;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.logging.Level;
导入java.util.logging.Logger;
导入javafx.application.application;
导入javafx.beans.property.SimpleStringProperty;
导入javafx.collections.FXCollections;
导入javafx.collections.ObservableList;
导入javafx.scene.Group;
导入javafx.scene.scene;
导入javafx.scene.control.TableColumn;
导入javafx.scene.control.TableView;
导入javafx.scene.control.cell.PropertyValueFactory;
导入javafx.scene.layout.VBox;
导入javafx.stage.stage;
导入java.lang.String;
公共类readCSV扩展应用程序{
公开课记录{
//假设每条记录有6个元素,全部为字符串
私有SimpleStringProperty f1、f2、f3、f4、f5、f6、f7、f8、f9、f10、f11、f12;
公共字符串getF1(){
返回f1.get();
}
公共字符串getF2(){
返回f2.get();
}
公共字符串getF3(){
返回f3.get();
}
公共字符串getF4(){
返回f4.get();
}
公共字符串getF5(){
返回f5.get();
}
公共字符串getF6(){
返回f6.get();
}
公共字符串getF7(){
返回f7.get();
}
公共字符串getF8(){
返回f8.get();
}
公共字符串getF9(){
返回f9.get();
}
公共字符串getF10(){
返回f10.get();
}
公共字符串getF11(){
返回f11.get();
}
公共字符串getF12(){
返回f12.get();
}
记录(字符串f1、字符串f2、字符串f3、字符串f4、,
字符串f5、字符串f6、字符串f7、字符串f8、字符串f9、字符串f10、,
字符串f11、字符串f12){
this.f1=新的SimpleStringProperty(f1);
this.f2=新的SimpleStringProperty(f2);
this.f3=新的SimpleStringProperty(f3);
this.f4=新的SimpleStringProperty(f4);
this.f5=新的SimpleStringProperty(f5);
this.f6=新的SimpleStringProperty(f6);
this.f7=新的SimpleStringProperty(f7);
this.f8=新的SimpleStringProperty(f8);
this.f9=新的SimpleStringProperty(f9);
this.f10=新的SimpleStringProperty(f10);
this.f11=新的SimpleStringProperty(f11);
this.f12=新的SimpleStringProperty(f12);
}
}
private final TableView TableView=new TableView();
私有最终可观察列表数据列表
=FXCollections.observableArrayList();
@凌驾
公共无效开始(阶段primaryStage){
primaryStage.setTitle(“飞行日志面板”);
组根=新组();
TableColumn columnF1=新的TableColumn(“f1”);
columnF1.setCellValueFactory(
新物业价值工厂(“f1”);
TableColumn columnF2=新的TableColumn(“f2”);
columnF2.setCellValueFactory(
新物业价值工厂(“f2”);
TableColumn columnF3=新的TableColumn(“f3”);
columnF3.setCellValueFactory(
新物业价值工厂(“f3”);
TableColumn columnF4=新的TableColumn(“f4”);
columnF4.setCellValueFactory(
新物业价值工厂(“f4”);
TableColumn columnF5=新的TableColumn(“f5”);
columnF5.setCellValueFactory(
新物业价值工厂(“f5”);
TableColumn columnF6=新的TableColumn(“f6”);
columnF6.setCellValueFactory(
新物业价值工厂(f6);
TableColumn columnF7=新的TableColumn(“f7”);
columnF7.setCellValueFactory(
新物业价值工厂(“f7”);
TableColumn columnF8=新的TableColumn(“f8”);
columnF8.setCellValueFactory(
新物业价值工厂(“f8”);
TableColumn columnF9=新的TableColumn(“f9”);
columnF9.setCellValueFactory(
新物业价值工厂(“f9”);
TableColumn columnF10=新的TableColumn(“f10”);
columnF10.setCellValueFactory(
新物业价值工厂(“f10”);
TableColumn columnF11=新的TableColumn(“f11”);
columnF11.setCellValueFactory(
新物业价值工厂(“f11”);
TableColumn columnF12=新的TableColumn(“f12”);
列F12.setCellValueFactory(
新物业价值工厂(“f12”);
tableView.setItems(数据列表);
tableView.getColumns().addAll(
列F1、列F2、列F3、列F4、列F5、列F6、,
第F7列、第F8列、第F9列、第F10列、第F11列、第F12列);
VBox VBox=新的VBox();
vBox.setspace(100);
vBox.getChildren().add(tableView);
root.getChildren().add(vBox);
原始阶段。设置场景(新场景(根,1000500));
//primaryStage.show();
readCSV();
}
私有void readCSV(){
String CsvFile=“C:\\Users\\Jack Vu\\IdeaProjects\\Flight\u panel/Flight\u log.csv”;
字符串FieldDelimiter=“,”;
缓冲剂;
试一试{
CsvParserSettings parserSettings = new CsvParserSettings();
parserSettings.selectFields("Field A", "Field X", "Field Z");
//also parserSettings.selectIndexes(4, 0, 1);
List<String[]> parsedRows = new CsvParser(parserSettings).parseAll(new File(csvFile));