我想用SQLite数据库中的数据填充TableView,

我正在尝试用数据表单数据库填充 TableView 。我设法成功地将TableView中的元素添加到数据库中,但是现在我需要以其他方式进行操作,而我无法管理。我将元素存储到ObservableList中,我也想从那里检索它。是一个测试项目,我将其保持简单,只是名称和年龄为SimpleStringProperties

    public class Spieler {

    private final StringProperty name;
    private final StringProperty age;
    private final StringProperty photo;

    public Spieler() {
        this(null,null,null);
    }

    public Spieler(String name,String age,String photo) {
        this.name = new SimpleStringProperty(name);
        this.age = new SimpleStringProperty(age);
        this.photo = new SimpleStringProperty(photo);
    }

    public String getName() {
        return name.get();
    }

    public void setName(String name) {
        this.name.set(name);
    }

    public StringProperty nameProperty() {

        return name;
    }

    public String getage() {
        return age.get();
    }

    public void setage(String age) {
        this.age.set(age);
    }

    public StringProperty ageProperty() {
        return age;
    }
    public String getPhoto() {
        return photo.get();
    }
    public void setPhoto(String photo) {
        this.photo.set(photo);
    }
    public StringProperty photoProperty() {
        return photo;
    }
    }

这是添加新播放器来处理表和数据库的方法

public class listsLayoutController  {

    Connection conn;
    @FXML
    private TextField nameField;
    @FXML
    private TextField ageField;
    @FXML
    private TextField photoField;
    @FXML
    private ImageView picViews;
    @FXML 
    private TableView<Spieler> team;
    @FXML
    private TableColumn<Spieler,String> nameColumn;
    @FXML
    private TableColumn<Spieler,String> ageColumn;
    @FXML 
    private Label nameLab;
    @FXML
    private Label ageLab;
    @FXML 
    private Image picture;
    private MainTest mainTest;
    private Spieler spieler;

    ObservableList<Spieler> spielerData = FXCollections.observableArrayList();
    public listsLayoutController() {

    }
    @FXML
    private void initialize() {

        nameColumn.setCellValueFactory(cellData -> cellData.getvalue().nameProperty());
        ageColumn.setCellValueFactory(cellData -> cellData.getvalue().ageProperty());
        showSpielerDetails(null);
        team.getSelectionmodel().selectedItemProperty().addListener((observable,oldValue,newValue) -> showSpielerDetails(newValue));  
        team.setItems(spielerData);
    }
@FXML
    private void handleNewSpieler() {
        Spieler tempSpieler = new Spieler();
        boolean OkClicked = mainTest.showSpielerEditDialog(tempSpieler);
        if(OkClicked) {
            mainTest.getSpielerData().add(tempSpieler);
        }
        String sqlDB = "INSERT INTO list(name,age) VALUES (?,?)";

        try {
            Connection conn = Database.Connector();
            PreparedStatement stmt = conn.prepareStatement(sqlDB);
            stmt.setString(1,tempSpieler.getName());
            stmt.setString(2,tempSpieler.getage());
            stmt.execute();
            conn.close();
            System.out.println(tempSpieler.getage().toString()+ " " + tempSpieler.getName());
        }   
        catch(SQLException e) {
            e.printStackTrace();
        }

    }

启动应用程序时,我只是无法将播放器数据获取到TableView中。任何帮助将不胜感激

iCMS 回答:我想用SQLite数据库中的数据填充TableView,

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2131272.html

大家都在问