相关疑难解决方法(0)

Javafx PropertyValueFactory没有填充Tableview

这让我困惑了一段时间,我似乎无法掌握它.我正在使用Cell Value Factory来填充一个简单的一列表,它不会填充在表中.

它确实和我点击了已填充的行,但我没有看到任何值 - 在本例中为String值.[我刚刚编辑了这个以使它更清晰]

我有一个不同的项目,它在同一种数据模型下工作.我究竟做错了什么?

这是代码.最后评论的代码似乎工作.我已经检查过是否存在通常的错误 - 创建新的列实例或新的tableview实例.没有.请帮忙!


//简单数据模型Stock.java

public class Stock {

    private SimpleStringProperty stockTicker;

    public Stock(String stockTicker) {
        this.stockTicker = new SimpleStringProperty(stockTicker);
    }

    public String getstockTicker() {
        return stockTicker.get();
    }

    public void setstockTicker(String stockticker) {
        stockTicker.set(stockticker);
    }
}
Run Code Online (Sandbox Code Playgroud)

// Controller类MainGuiController.java

    private ObservableList<Stock> data;
    @FXML
    private TableView<Stock> stockTableView;// = new TableView<>(data);
    @FXML
    private TableColumn<Stock, String> tickerCol;


    private void setTickersToCol() {
    try {
        Statement stmt = conn.createStatement();//conn is defined and works
        ResultSet rsltset = stmt.executeQuery("SELECT ticker FROM tickerlist …
Run Code Online (Sandbox Code Playgroud)

javafx tableview javafx-2

11
推荐指数
1
解决办法
1万
查看次数

Java:setCellValuefactory; Lambda与PropertyValueFactory; 优点缺点

今天我在尝试学习JavaFX和Java的更多内容时遇到了另一件我并不理解的事情.

参考是以下教程(我试图将原理应用于组织者):

JavaFX 8教程

我将简要介绍一下我有问题的特定部分:

我的主窗口包含一个tableview,显示一些约会数据.所以我得到了一些这种风格的线条(与教程中相同):

aColumn.setCellValueFactory(cellData ->cellData.getValue().getAColumnsProperty());
Run Code Online (Sandbox Code Playgroud)

可以通过额外的EditDialog操纵数据.这很好用.如果我编辑的东西,立即显示更改,但我做了一些额外的研究,以更好地了解Lambda(不太成功).现在......在线java文档Java Doc PropertyValueFactory中说:"Callback-Interface的一个便利实现,[...]"

所以我将我的代码重构为这种风格:

aColumn.setCellValueFactory(new PropertyValueFactory<Appointment,LocalDate>("date"));
Run Code Online (Sandbox Code Playgroud)

我发现它比Lambda更具可读性.但我注意到,当我进行更改时,我需要在显示更改之前对TableView进行一些排序.

是否有可能在第二种方法中立即显示变化?

如果是的话:是否存在阻碍这种修改的重大缺陷?也就是Lambda是这种情况下的最佳实践?

我感谢任何帮助.

java javafx

4
推荐指数
1
解决办法
9609
查看次数

如何将 JavaFX TableView 与 java 记录一起使用?

记录是Java 16的一项新功能。在JEP 395:记录中定义。

假设您有这样的记录。

public record Person(String last, String first, int age)
{
    public Person()
    {
        this("", "", 0);
    }
}
Run Code Online (Sandbox Code Playgroud)

这是最后一堂课。它自动生成 getter 方法first()、last() 和age()。

现在这是 JavaFX 中的 TableView。

/**************************************************
*   Author: Morrison
*   Date:  10 Nov 202021
**************************************************/

import javafx.application.Application;
import javafx.application.Platform;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.control.TableView;
import javafx.scene.control.TableColumn;
import javafx.scene.control.cell.PropertyValueFactory;

public class TV extends Application
{
    public TV()
    {
    }

    @Override
    public void init()
    {
    }

    @Override
    public void start(Stage primary) …
Run Code Online (Sandbox Code Playgroud)

javafx tableview java-record

4
推荐指数
1
解决办法
1778
查看次数

如何为tableview声明日期值属性

我需要将日期属性传递给 setCellValueFactory ,这是我的 seters 和 geters 的代码Persona class,正确的方法是什么,我认为我在正确的声明中遇到了问题,所以我在这里需要一个真正的方向,我需要在java.sql.date类中声明一些日期,可以参考一下吗?任何想法?。请在这里提供一点帮助。

   package application;


import java.time.LocalDate;

import javafx.beans.property.IntegerProperty;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;

public class Persona {



    private StringProperty nombres;
    private StringProperty apellidos;
    private IntegerProperty id_cliente;
    private ObjectProperty <LocalDate>fechacliente;

public Persona (   String nombres, String apellidos, Integer id_cliente, Object fechacliente) {
    this.nombres=  new SimpleStringProperty (nombres);
    this.apellidos= new SimpleStringProperty ( apellidos);
    this.id_cliente=new SimpleIntegerProperty (id_cliente);
    this.fechacliente= new SimpleObjectProperty<LocalDate>();
}


public Object getFecha() {
    return fechacliente.get();
}

public void setFecha(Object …
Run Code Online (Sandbox Code Playgroud)

javafx

-1
推荐指数
1
解决办法
3441
查看次数

标签 统计

javafx ×4

tableview ×2

java ×1

java-record ×1

javafx-2 ×1