当前位置: 首页 > 知识库问答 >
问题:

JavaFX、TableView和JPA

白星腾
2023-03-14

我是JavaFX的新手,我正在尝试将旧的Swing应用程序重构为JavaFX应用程序。

我还使用JPA(带有EclipseLink实现)来保存/检索数据
所以我定义了一些带注释的POJO。

下面是我的注释POJO:

import java.io.Serializable;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 *
 * @author alex
 */
@Entity
@Table(name = "materiale", catalog = "elledia", schema = "")
public class Materiale implements Serializable {
  @Transient
  private static final long serialVersionUID = 1L;

  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Basic(optional = false)
  @Column(name = "id")
  private Long id;

  @Basic(optional = false)
  @Column(name = "colata")
  private String colata;

  @Basic(optional = false)
  @Column(name = "dimensione")
  private String dimensione;

  @Basic(optional = false)
  @Column(name = "specifica")
  private String specifica;

  @Basic(optional = false)
  @Column(name = "unita_misura")
  private String unitaMisura;

  @Column(name = "version")
  private Integer version;

  @ManyToOne (fetch = FetchType.LAZY)
  @JoinColumn (name = "certificato_id")
  private Certificato certificato;

  public Materiale(Long id, String colata, String dimensione, String specifica, String unitaMisura, Certificato certificato) {
    this.id = id;
    this.colata = colata;
    this.dimensione = dimensione;
    this.specifica = specifica;
    this.unitaMisura = unitaMisura;
    this.certificato = certificato;
  }

  public Long getId() {
    return id;
  }

  public void setId(Long id) {
    Long oldId = this.id;
    this.id = id;
  }

  public String getColata() {
    return colata;
  }

  public void setColata(String colata) {
    String oldColata = this.colata;
    this.colata = colata;
  }

  public String getDimensione() {
    return dimensione;
  }

  public void setDimensione(String dimensione) {
    String oldDimensione = this.dimensione;
    this.dimensione = dimensione;
  }

  public String getSpecifica() {
    return specifica;
  }

  public void setSpecifica(String specifica) {
    String oldSpecifica = this.specifica;
    this.specifica = specifica;
  }

  public String getUnitaMisura() {
    return unitaMisura;
  }

  public void setUnitaMisura(String unitaMisura) {
    String oldUnitaMisura = this.unitaMisura;
    this.unitaMisura = unitaMisura;
  }

  public Integer getVersion() {
    return version;
  }

  public void setVersion(Integer version) {
    Integer oldVersion = this.version;
    this.version = version;
  }

  public Certificato getCertificato() {
    return certificato;
  }

  public void setCertificato(Certificato certificato) {
    Certificato oldCertificato = this.certificato;
    this.certificato = certificato;
  }

  @Override
  public int hashCode() {
    int hash = 0;
    hash += (id != null ? id.hashCode() : 0);
    return hash;
  }

  @Override
  public boolean equals(Object object) {
    // TODO: Warning - this method won't work in the case the id fields are not set
    if (!(object instanceof Materiale)) {
      return false;
    }
    Materiale other = (Materiale) object;
    if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
      return false;
    }
    return true;
  }

  @Override
  public String toString() {
    return "com.alessandrodonato.elledia.certificati.gui.Materiale[ id=" + id + " ]";
  }

}

TableViewControl有些问题:

    null

共有1个答案

甄佐
2023-03-14

TiwulFX提供了专门设计用于处理JavaFXPOJO对象的Java自定义组件。

 类似资料:
  • 问题内容: 因此,我尝试学习如何使用JavaFx Tableview,并且在本教程中感到困惑: Oracle Tableview教程 在本教程中,它们显示了要填充tableView,您必须用String填充它,而不仅仅是将String格式化为 我尝试了没有格式,结果是没有信息会显示! 我也发现,如果要向表中添加一个,则必须将其声明为 现在我对JavaFx还是相当陌生,但这是否意味着当我创建一个对象

  • 我有在JavaFX TreeView中显示数据库结果应用程序。我完全按照这个答案所说的去做。但当我运行该程序时,我得到一个如下所示的错误。 错误指向Controller中的方法。 我该怎么解决这个..? 这是POJO类

  • 我是JavaFX新手。我正在使用TableView并尝试将用户从字段Username和Password输入的数据放入表中。只是个测试程序。我得到下面的错误。

  • 我想自定义tableview的按钮,但是当我在initialize方法中获得show-hide-columns-button时,它是空的。有一种方法可以获得show-hide-columns-按钮。

  • 问题内容: 我正在使用JavaFX使用一个简单的CSV Viewer测试自己,并且无法填充表格数据。我确实动态创建了列,但是数据值是不行的。我在网上搜索后发现了几种方法,但是所有方法都包括带有自定义类(包括获取/设置)的ObservableList,该类在CSV查看器中必须是动态的(CSV可以有任意数量的列,这意味着可以有任意数量的数据值)。 例: 问题答案: 使用DataFX,这将使您的工作更轻

  • 我有一个用SceneBuilder生成的TableView,所有列都是从其他视图导入的FXML,直到没有问题为止,但列没有填充宽度。 我试图用scene builder和FXML来解决这个问题,但没有运气,所有的大小都是计算出来的。 我尝试用一个change listener对其进行编码,它在每次窗口改变大小以适应列的大小时都会进行检查。 这样可以工作,并且列的大小调整到适当的宽度(基本上我得到了