[英]Invalid type error at compilation when using javafx, jfoenix, JAVAFX, & Treetableview with mysql
我在使用 treetableview 和 jfoenix 时遇到了问题,我注意到在我的控制器中,它不接受Tournoi
作为类型private JFXTreeTableView<Tournoi> Ttab;
我正在尝试从数据库中检索数据并将数据放入树表视图中,但出现编译错误。 这是我用来访问数据库的类:
public class Tournoi {
private int id_tournoi;
private String nom;
private Date strat_date;
private Date end_date ;
private int reward1 ;
private int reward2;
private int reward3;
private int prix_par_joueur;
private int nbr_joueur;
private int etat;
private int id_compte;
public Tournoi(int id_tournoi, String nom, Date strat_date, Date end_date, int reward1, int reward2, int reward3, int prix_par_joueur, int nbr_joueur, int etat, int id_compte) {
this.id_tournoi = id_tournoi;
this.nom = nom;
this.strat_date = strat_date;
this.end_date = end_date;
this.reward1 = reward1;
this.reward2 = reward2;
this.reward3 = reward3;
this.prix_par_joueur = prix_par_joueur;
this.nbr_joueur = nbr_joueur;
this.etat = etat;
this.id_compte = id_compte;
}
public void addTournoi(Tournoi t) {
String req = "INSERT INTO `tournoi` ( `nom`, `start_date`, `end_date`, `reward1`, `reward2`, `reward3`, `prix_par_joueur`, `nbr_joueur`, `etat`, `id_compte`) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);";
try {
ps = connection.prepareStatement(req);
ps.setString(1, t.getNom());
ps.setDate(2, (Date) t.getStrat_date());
ps.setDate(3, (Date) t.getEnd_date());
ps.setInt(4, t.getReward1());
ps.setInt(5, t.getReward2());
ps.setInt(6, t.getReward3());
ps.setInt(7, t.getPrix_par_joueur());
ps.setInt(8, t.getNbr_joueur());
ps.setInt(9, t.getEtat());
ps.setInt(10, t.getId_compte());
ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
问题的根源是什么?
jfoenix.jar
文件。 你需要包括它,否则你不会走得太远。 以下是将 JAR 文件导入 IntelliJ IDEA 的方法。 如果您使用不同的 IDE,则需要查找如何使用该 IDE 导入 JAR。import edu.esprit.gamehub.models.Tournoi;
在TournamentController
类中。 导入后,我将此属性添加到TournamentController
:
@FXML
private com.jfoenix.controls.JFXTreeTableView<Tournoi> treeView;
然后它给了我错误: Error:(33, 51) java: type argument edu.esprit.gamehub.models.Tournoi is not within bounds of type-variable S
这是 JFXTreeTableView 类的顶部:
public class JFXTreeTableView<S extends RecursiveTreeObject<S>> extends TreeTableView<S> {
private TreeItem<S> originalRoot;
private boolean itemWasSelected = false;
private ObservableList<TreeTableColumn<S, ?>> groupOrder = FXCollections.observableArrayList();
private Semaphore groupingSemaphore = new Semaphore(1);
private Timer t;
private ObjectProperty<Predicate<TreeItem<S>>> predicate;
private IntegerProperty currentItemsCount;
private Map<Object, Map<Object, ?>> groups;
public JFXTreeTableView() {
this.predicate = new SimpleObjectProperty(JFXTreeTableView$$Lambda$1.lambdaFactory$());
this.currentItemsCount = new SimpleIntegerProperty(0);
this.init();
}
public JFXTreeTableView(TreeItem<S> root, ObservableList<S> items) {
super(root);
this.predicate = new SimpleObjectProperty(JFXTreeTableView$$Lambda$2.lambdaFactory$());
this.currentItemsCount = new SimpleIntegerProperty(0);
this.originalRoot = root;
this.init();
}
一些解决泛型类型使用问题的示例文章是:
问题是您使用的是有界类型参数,它有自己的要求。 您的 Tournoi 课程不符合这些要求。 要了解如何满足这些要求,请阅读:
这是你的线索: JFXTreeTableView<S extends RecursiveTreeObject<S>> extends TreeTableView<S>
你需要你的 Tournoi 类继承什么来满足 JFXTreeTableView 泛型类的要求?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.