Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.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,如何填写表格_Java_Javafx - Fatal编程技术网

JavaFX,如何填写表格

JavaFX,如何填写表格,java,javafx,Java,Javafx,我在mssqlserver中有一个表,它有4列:id,channel,movie,time。四个可能的行:HBO |愤怒7 | 12:15,HBO |温布尔登| 11:25,FOX |辛普森一家| 7:00,FOX |路西法| 9:01。我有一门课叫guide: public class guide { private String channel; private String movie; private LocalTime time; (...) 还有一个名为gui的类: import

我在
mssqlserver
中有一个表,它有
4列:
id
channel
movie
time
。四个可能的行:
HBO |愤怒7 | 12:15
HBO |温布尔登| 11:25
FOX |辛普森一家| 7:00
FOX |路西法| 9:01
。我有一门课叫
guide

public class guide {
private String channel;
private String movie;
private LocalTime time;
(...)
还有一个名为
gui
的类:

import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import javafx.util.Callback;
import org.joda.time.LocalTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import org.joda.time.format.DateTimeFormatterBuilder;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class gui extends Application {

    Stage stage;
    Scene sceneMain;

    int nrOfChannels;
    List<String> channelsOnMain;
    @Override
    public void start(Stage primaryStage) throws Exception {

        TableView<guide> tableMain = new TableView<>(loadMain());

        List<TableColumn<guide, String>> colChannelList = new ArrayList<>();
        for (int i = 0; i < nrOfChannels; i++) {
            colChannelList.add(new TableColumn<guide, String>(channelsOnMain.get(i)));
        }

        for(int i = 0; i < colChannelList.size(); i++){
            colChannelList.get(i).setCellValueFactory(new PropertyValueFactory<guide, String>("movie"));
        }

        for(int i = 0; i < colChannelList.size(); i++)
            tableMain.getColumns().add(colChannelList.get(i));


        BorderPane paneMain = new BorderPane(tableMain);
        sceneMain = new Scene(paneMain);

        stage = primaryStage;
        stage.setScene(sceneMain);
        stage.setTitle("TVguide");
        stage.show();
    }

    public ObservableList<guide> loadMain(){
        ObservableList<guide> mainList = FXCollections.observableArrayList();
        int numberOfChann = 0;
        try {
            handleDB dbMain = new handleDB();
            Connection myConnection = dbMain.connect_with_DB();
            String query = "SELECT * FROM main";
            ResultSet mainFromDB = dbMain.getFromSQL(myConnection, query);
            String tempChannel = "";
            channelsOnMain = new ArrayList<>();
            while (mainFromDB.next()) {
                if(mainFromDB.getString(3).toString() != null && !mainFromDB.getString(3).toString().isEmpty()) {
                    if(!mainFromDB.getString(2).equals(tempChannel)){
                        numberOfChann++;
                        tempChannel = mainFromDB.getString(2);
                        channelsOnMain.add(tempChannel);
                    }
                    mainList.add(new guide(mainFromDB.getString(2), mainFromDB.getString(3), new LocalTime(mainFromDB.getString(4))));//2-channel,3-movie,4-time
                }
            }
        } catch(Exception ex){
            ex.printStackTrace();
        }
        nrOfChannels = numberOfChann;
        return mainList;
    }
}
它把每一部电影放在每一个专栏里,这是合乎逻辑的,但不是我的观点。有可能改变这个吗

for(int i = 0; i < colChannelList.size(); i++){
    colChannelList.get(i).setCellValueFactory(new PropertyValueFactory<guide, String>("movie"));
}
for(int i=0;i
为了在列中具有
colChannelList.get(i)
movie
属于具有特定
频道的对象的属性?

简言之,我想要一个表格,在HBO的
栏中有
狂暴7
温布尔登
福克斯的
栏中有
辛普森一家的
路西法的
,而不是f.e.
HBO的
栏中有每一部
4
电影,有可能吗?

java中的命名惯例规定,类名应该以大写字母开头!因此,您可能想称自己为class
Gui
Gui
(第二个,因为它实际上是一个缩写,但这是一个偏好问题……)java命名的约定是,类名应该以大写字母开头!因此,您可能想称自己为class
Gui
Gui
(第二个,因为它实际上是一个缩写,但这是一个偏好问题。)
for(int i = 0; i < colChannelList.size(); i++){
    colChannelList.get(i).setCellValueFactory(new PropertyValueFactory<guide, String>("movie"));
}