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

如何在没有警告的情况下创建JavaFX TableView?

尉迟明贤
2023-03-14

我正在遵循Oracle的教程在JavaFX中创建TableView。在这个截图中,我复制并粘贴了代码,发现了几个错误,教程中没有提到这些错误。

TableView上的警告显示:

TableView是原始类型。对泛型类型TableView的引用

表列上的警告说:

表列是一个原始类型。对泛型类型TableCol列的引用

addAll方法上的警告是:

类型安全:方法addAll(Object…)属于原始类型ObservableList。泛型类型ObservableList的引用

我查看了文档,发现它们确实需要参数(这让人困惑,因为教程中没有提到这一点),但我不明白它们应该是什么。如果我这样做了

TableView<String> table = new TableView<>();

TableColumn<String, String> tableCol = new TableColumn<>(...);

我仍然在addAll方法上得到警告,它说:

类型安全性:TableColumn的通用数组

我真的不明白类型参数应该是什么。我知道我可以抑制警告,但这似乎是不好的做法。我应该怎么做呢?

共有1个答案

仲孙兴旺
2023-03-14

TableView需要它将尝试在每一行中表示的数据对象。因此,根据您的示例,您试图在表中显示人员列表。因此,tableView引用类型将为Person类型。喜欢

TableView<Person> tableView = new TableView<>();

现在,每列表示要显示的信息的数据类型。在您的情况下,所有都是字符串。但它可以根据您想要显示的数据而变化。

例如,考虑下面的Person对象。

public class Person{
     private StringProperty firstName = new SimpleStringProperty();
     private StringProperty lastName = new SimpleStringProperty();
     private IntegerProperty age = new SimpleIntegerProperty();
     private DoubleProperty weight = new SimpleDoubleProperty();
}

在上面的人对象中,如果您想表示每列中的数据,您的列声明将如下所示...

TableColumn<Person, String> firstNameCol = new TableColumn<>("First Name");
TableColumn<Person, String> lastNameCol = new TableColumn<>("Last Name");
TableColumn<Person, Integer> ageCol = new TableColumn<>("Age");
TableColumn<Person, Double> weightCol = new TableColumn<>("Weight");
 类似资料:
  • 我正在尝试设置一个动态,从本地目录读取文件。因此,我创建了以下可参数化类: 参数化流在的帮助下注册,如下所示: 启动应用程序后,我得到以下警告: 如果我理解正确的话,负责创建集成bean(从而设置beanFactory)。但是为什么我会收到这个错误信息呢?

  • 我正在使用minGW的minw-w64(x64)分叉nuwen.net.这是来自gcc的7.1版本: 我正在编译这个程序: 带有警告和c11标准: 我得到了这些警告: 我想在没有警告的情况下打印size_t,但在这种情况下不知道正确的格式说明符。

  • 我试着去看其他的代码例子,但是它们和我的代码比较相似,但是我的应用程序仍然会因为同样的错误而崩溃。 这是我使用firebase文档的指导方针编写的代码: 上面的代码正在将otp发送到给定的号码,但是它崩溃了,并且cat-log显示了上面提到的错误。

  • 这里提出的问题是:https://vaadin.com/forum/thread/18095407/how-to-create-a-grid-without-binder 然而,瓦丁的论坛关闭了,所以我想在这里继续。 关于Vaadin 14,任何关于实现动态变化列数网格的最佳方法的建议。使用列索引(1,2,3...)对我来说不是一个好选择。假设我有一个简单的Json文件(只有1个级别:key-va

  • 每次我在eclipse中创建一个android项目时,除了作为项目添加的appcompat_v7之外,它都以错误“没有找到与给定名称匹配的资源:attr xxx”开始。 我找到了一种方法来解决此问题,方法是完全删除操作栏,避免使用少于API 11,修改所有XML文件并删除创建的appcompat_v7项目。但是,这个解决方案很繁琐,每次我需要创建一个简单的项目时都必须完成。 我的问题不是“什么是a