问题标签 [javafx-tableview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 当只有某些项目发生变化时,如何防止 Javafx Tableview 重新加载所有显示的行?
我正在尝试提高不断更新的Application
倍数的性能。Tableviews
在每次更新中,只有 1 项ObservableList
更改。重新加载这些行Tableviews
并将 css 样式应用于这些行正在显着降低应用程序的速度。
我查看了Tableviews
重新加载行的方式,并意识到所有行都在不断地从头开始重建,而与底层的更改类型无关ObservableList
。更改视口内的 1 个项目/视口外的 1 个项目/完全替换 List 会导致行构造的确切数量。
有没有办法阻止 JavafxTableviews
重新加载所有显示Rows
的,当只有某些Items
更改时?
其他可能的调整以提高不断重新加载的性能Tableviews
将不胜感激。
java - 我的 JavaFX 应用程序上的 ClassCasting 错误和 tableView 上显示值的问题
一切正常,但后来我添加了泛型,现在这个 ClassCastException 不断弹出,我不知道为什么。
****重要****
所以我也尝试将其删除,但这里又出现了另一个问题。打印到牵引力控制列之前的所有值。在此之后,所有值都不会显示事件,尽管除了其中一些的数据类型之外,一切都是完全相同的。
错误
原因:java.lang.ClassCastException:app.westminster.car.rentalSystem.Car 无法在 app.westminster.car.rentalSystem.GUI.MainGUI.lambda$start$5(MainGUI .java:139) 在 javafx.scene.control.TableColumn.getCellObservableValue(TableColumn.java:578) 在 javafx.scene.control.TableColumn.getCellObservableValue(TableColumn.java:563) 在 javafx.scene.control.TableCell.updateItem( TableCell.java:644) 在 javafx.scene.control.TableCell.indexChanged(TableCell.java:468) 在 javafx.scene.control.IndexedCell.updateIndex(IndexedCell.java:116) 在 com.sun.javafx.scene.control .skin.TableRowSkinBase.updateCells(TableRowSkinBase.java:533) 在 com.sun.javafx.scene.control.skin.TableRowSkinBase.init(TableRowSkinBase.java:147) 在 com.sun.javafx.scene.control.skin。TableRowSkin.(TableRowSkin.java:64) 在 javafx.scene.control.TableRow.createDefaultSkin(TableRow.java:212) 在 javafx.scene.control.impl_processCSS(Control.java:872) 在 javafx.scene.Node。 processCSS(Node.java:9056) at javafx.scene.Node.applyCss(Node.java:9153) at com.sun.javafx.scene.control.skin.VirtualFlow.setCellIndex(VirtualFlow.java:1964) at com.sun .javafx.scene.control.skin.VirtualFlow.getCell(VirtualFlow.java:1797) 在 com.sun.javafx.scene.control.skin.VirtualFlow.getCellLength(VirtualFlow.java:1879) 在 com.sun.javafx.scene .control.skin.VirtualFlow.computeViewportOffset(VirtualFlow.java:2528) at com.sun.javafx.scene.control.skin.VirtualFlow.layoutChildren(VirtualFlow.java:1189) at javafx.scene.Parent.layout(Parent.java :1087) 在 javafx.scene.Parent.layout(Parent.java:1093) at javafx.scene.Parent.layout(Parent.java:1093) at javafx.scene.Scene.doLayoutPass(Scene.java:552) at javafx.scene.Scene.preferredSize(Scene.java:1646) at javafx。在 javafx.beans 的 javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109) 的 javafx.stage.Window$9.invalidated(Window.java:864) 的 scene.Scene.impl_preferredSize(Scene.java:1720)。 property.BooleanPropertyBase.set(BooleanPropertyBase.java:144) at javafx.stage.Window.setShowing(Window.java:940) at javafx.stage.Window.show(Window.java:955) at javafx.stage.Stage.show (Stage.java:259) 在 app.westminster.car.rentalSystem.GUI.MainGUI.start(MainGUI.java:154) 在 com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161(LauncherImpl.java:863)在 com.sun.javafx.application.PlatformImpl。lambda$runAndWait$174(PlatformImpl.java:326) 在 com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295) 在 java.security.AccessController.doPrivileged(Native Method) 在 com.sun。 javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294) 在 com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) 在 com.sun.glass.ui.win.WinApplication ._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177) ... 还有 1 个InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication. java:177) ... 还有 1 个InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication. java:177) ... 还有 1 个
图形用户界面类
带有 Main 方法的主类
假设我删除了 lambdas 并放入了新的 PropertyValueFactory。然后错误消失,GUI工作
但
牵引力控制后的值不显示
java - 单击TableView列标题时如何先使用降序排序?
Javafx TableView 排序在单击列标题时首先使用升序,然后在第二次单击时使用降序。我有一个包含运动队数据的表格,其中包含胜利、失败等列。默认情况下,胜利应按降序排序,损失按升序排序,因此当单击标题一次时,每个类别中最好的团队始终位于顶部。
我已经sortType="DESCENDING"
在 fxml 文件和setSortType(TableColumn.SortType.DESCENDING)
代码中尝试过,但没有任何效果。
java - 如何在嵌套对象的 TableView 中显示数据?
我有一个TableView<Marriage>
控制器类:
在initialize
方法中,我试图CellValueFactory
为每个表格列设置,所以我可以Marriage
在我的表格视图中显示对象。
然而,Marriage 对象由另一个类型为 Groom 和 Bride 的对象组成,我试图从中显示一些值。
我得到的例外:
如何设置CellValueFactory
或编辑TableColumn
的通用参数,以便显示嵌套对象的属性?
java - Javafx 表和折线图
我想用表格中的数据制作表格和折线图。我已经创建了一个表格和一个折线图,但我不知道如何组合它们。这就是我的表格的外观,但我需要一个带有来自 Observablelist 的数据的折线图。我需要知道如何将表格中的列中的两个数据添加到折线图中。
java - 如何在 JavaFX Tableview 中增加表格标题和表格单元格的宽度
JavaFX中如何增加表格标题和表格单元格的间距。
我创建了如下表:
javafx - Java FX Tableview 未从 MYSQL DB 加载数据
我对 Java 和 JavaFX 相当陌生,我正在尝试编写一个从 MYSQL 数据库中提取用户数据的程序。我的连接有效,但我无法将信息提取到 TableView 中。现在我已经重做了很多次,现在我不知道我在哪里,特别是因为我没有出错。
有人可以告诉我如何使它正常工作。
这是用户类
这是控制器类
我认为这可能是导致问题的原因,我称之为准备好的声明。
最后是主
image - 如何在 javafx Tableview 中设置 javafx Togglebutton 以根据来自 sqlite 数据库(JDBC)的布尔值更正图像
我正在开发一个程序,该程序将允许用户通过带有 javafx tableview tablecell 中的图像的切换按钮选择/添加声音作为收藏夹,并在数据库中设置声音的状态(更新收藏夹状态数据库有效)但是图像的更新仅部分有效。
按下切换按钮时,图像会像数据库一样正确更新
初始加载
任何最喜欢的选择之前的前 10 条记录
按下按钮后
数据库
但是当我停止并重新启动程序时问题就来了,因为我没有选择任何按钮(应该是声音 id 5)
这是数据库数据加载的代码
(最喜欢的第 2 列)修改自https://riptutorial.com/javafx/example/27946/add-button-to-tableview
相关的可初始化代码
我尝试在获取声音方法和各种布尔值中设置切换按钮的状态,但我的尝试都没有奏效。
感谢您的时间和任何帮助
托马斯·古斯塔夫森
javafx - 如何在不调用 endedit 方法的情况下从表格中的单元格获取值
当我在将文本保存到单元格之前输入一些文本时,我想按 F1 并使用该值执行一些方法(我想使用该值来搜索另一个列表)。
我知道我需要将 onKeyPressed 或 OnKeyReleased 方法放在表上,但我不知道如何获取单元格中的值,因为如果我从表中的对象中获取它,它会给我旧值