首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >JavaFX行未更新

JavaFX行未更新
EN

Stack Overflow用户
提问于 2013-05-25 15:40:49
回答 2查看 329关注 0票数 0

已经有一个非常类似的问题了,但我的问题有点不同。我正在使用属性和观察列表来更改它,它不会更新。最初的问题是here

因此,当我在表之间传输行时,如下所示:

第一行将会出现,但当添加多个行会导致第一行之后的行不更新时,如下所示:

只有当我在列中移动时,它们才会重新出现。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    //Loot identification
    TableColumn lootIdentCol = new TableColumn<>("Identification");

    TableColumn<ItemDef, Integer> lootIDCol = new TableColumn<>("ID");
    lootIDCol.setCellValueFactory(
            new PropertyValueFactory<ItemDef, Integer>("id"));

    TableColumn<ItemDef, String> lootNameCol = new TableColumn<>("Name");
    lootNameCol.setCellValueFactory(
            new PropertyValueFactory<ItemDef, String>("name"));

    lootIdentCol.getColumns().addAll(lootNameCol, lootIDCol);

    //Loot price
    TableColumn<ItemDef, Integer> lootPriceCol = new TableColumn<>("Price");
    lootPriceCol.setCellValueFactory(
            new PropertyValueFactory<ItemDef, Integer>("price"));

    //To loot items table
    toLootItemsTableView.getColumns().addAll(lootIdentCol, lootPriceCol);
    grid.add(toLootItemsTableView, 0, 1);

    //Lootable items table
    lootableItemsTableView.getColumns().addAll(lootIdentCol, lootPriceCol);
    grid.add(lootableItemsTableView, 2, 1);

    toLootItemsTableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
    lootableItemsTableView.setColumnResizePolicy(TableView.CONSTRAINED_RESIZE_POLICY);
    lootableItemsTableView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
    toLootItemsTableView.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);

    lootableTableList.add(new ItemDef("Ab", 141, false, false));
    lootableTableList.add(new ItemDef("Ac", 25, false, false));
    lootableTableList.add(new ItemDef("AD", 262, false, false));

    AddRemoveButtons<ItemDef> addRemoveLootButtons = new AddRemoveButtons<>(
            lootableTableList, lootableItemsTableView.getSelectionModel(),
            toLootTableList, toLootItemsTableView.getSelectionModel()
    );

AddRemoveButtons代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private final ObservableList<E> fromList;
private final ObservableList<E> toList;

public AddRemoveButtons(final ObservableList<E> fromList, final SelectionModel<E> from,
                        final ObservableList<E> toList, final SelectionModel<E> to) {
    this.fromList = fromList;
    this.toList = toList;

    setAlignment(Pos.CENTER);
    setPadding(new Insets(5, 5, 5, 5));
    setSpacing(15);

    ObservableList<Node> children = getChildren();

    Button moveInto = new Button("Add");
    moveInto.setOnMouseClicked(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent mouseEvent) {
            if (from instanceof MultipleSelectionModel) {
                MultipleSelectionModel<E> multipleFrom = (MultipleSelectionModel<E>) from;
                ObservableList<Integer> selectedIndices = multipleFrom.getSelectedIndices();
                for (int i : selectedIndices)
                    transfer(i, true);
            } else
                transfer(from.getSelectedIndex(), true);
        }
    });

    Button delete = new Button("Del");
    delete.setOnMouseClicked(new EventHandler<MouseEvent>() {
        @Override
        public void handle(MouseEvent mouseEvent) {
            if (to instanceof MultipleSelectionModel) {
                MultipleSelectionModel<E> multipleFrom = (MultipleSelectionModel<E>) to;
                ObservableList<Integer> selectedIndices = multipleFrom.getSelectedIndices();
                for (int i : selectedIndices)
                    transfer(i, false);
            } else
                transfer(to.getSelectedIndex(), false);
        }
    });

    children.addAll(moveInto, delete);
}

private void transfer(int index, boolean forward) {
    if (forward)
        toList.add(fromList.remove(index));
    else
        fromList.add(toList.remove(index));
}

实现可识别、可序列化、可比较的ItemDef:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private final String  name;
private final int     id;
private final boolean members;
private final boolean stackable;
private       int     price;

public ItemDef(JSONObject jsonObject) {
    this(
            (String) jsonObject.get("name"),
            Integer.parseInt((String) jsonObject.get("id")),
            Boolean.parseBoolean((String) jsonObject.get("members")),
            Boolean.parseBoolean((String) jsonObject.get("stackable"))
    );
}

public ItemDef(String name, int id, boolean members, boolean stackable) {
    this.name = name;
    this.id = id;
    this.members = members;
    this.stackable = stackable;
    price = -1;
}

public String getName() {
    return name;
}

@Override
public int getId() {
    return id;
}

public boolean isMembers() {
    return members;
}

public boolean isStackable() {
    return stackable;
}

public int getPrice() {
    return price != -1 ? price : updatePrice();
}

//Other methods not relevant
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-26 00:04:08

弄清楚为什么它一直这样做。

您不能在多个表上引用相同的TableColumn。

票数 2
EN

Stack Overflow用户

发布于 2013-06-21 15:49:25

如果希望在多个表中更新数据,则不应在多个表中共享列,因为需要在多个表之间共享数据集,而不是列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16751174

复制
相关文章
【数据库报错(未删除任何行,未更新任何行)】
首先查看定义的表格数据类型有无问题,点击表格编辑前100行 如何更改编辑行数:更改编辑行数 这里的允许NULL值为通过输入端输入后,写进数据库是否包含空值 例如,输入端通过注册输入注册名后,若允许NULL值未勾选,则写进表格的为用户名+数据类型除了用户名所占字节剩余用空格进行填充(写入表格中的数据为用户名+若干空格) 若允许NULL值勾选了,则写进表格的即为刚刚进行注册的用户名,其后没有多余空格
magize
2023/07/11
3870
【数据库报错(未删除任何行,未更新任何行)】
JavaFX 11发行说明
以下记录描述了有关此版本的重要更改和信息。在某些情况下,该说明提供了有关问题或更改的其他详细信息的链接。
gemron的空间
2019/11/04
6.7K0
300行代码不到的javafx框架tornadofx拼图游戏
不知道为什么分成9份的时候无法移动,请高手指教 分成36份的时候程序有可能卡住没反应 分成4份的时候有可能无法成功恢复原图 a2.gif heart2circle.zip 附件运行方式:解压后,双击文件:run.bat import javafx.application.Application import javafx.application.Platform import javafx.beans.property.SimpleObjectProperty import javafx.geome
用户6167008
2019/09/05
1.4K0
winform 窗口未创建数据更新
this窗口未创建前,不允许使用invoke,可以使用invokerequire避免抛出异常
sofu456
2020/03/18
1.7K0
JavaFX入门(四):JavaFX布局(一)
说道GUI编程一定要谈到布局,JavaFX内置了大量的布局控件提供给我们使用。其实,JavaFX的布局控件和界面元素控件都是继承自javafx.scene.layout.Region类。我们这里只看布局控件类。布局控件我们在界面上一般是看不到的,它一个容器用于放置其它可视的界面元素控件。(JavaFX在线API文档:JavaFX8 API Online) JavaFX布局控件的类图如下:
卡尔曼和玻尔兹曼谁曼
2019/01/22
12K1
JavaFX入门(四):JavaFX布局(一)
JavaFX入门(二):JavaFX和FXML
在我的JavaFXML系列博客第一篇《JavaFX入门(一):我的第一个JavaFX程序 》中我们用纯Java代码写了一个很简单的JavaFXML程序,这一节中我们使用FXML编写程序界面,然后用Java书写后台逻辑完成上一节中的程序,实现相同的功能。
卡尔曼和玻尔兹曼谁曼
2019/01/22
8.8K0
JavaFX入门(二):JavaFX和FXML
Vue视图未更新再次踩坑
今天遇到一个Vue数据更新了,但是视图未更新的问题,折腾了我2小时才搞定,有必要记录下来,防止日后再次踩坑。
Daotin
2021/01/07
1.1K0
JavaFX 简介
本文介绍了JavaFX技术,并基于JavaFX编写了一个简单的图形界面程序。通过使用JavaFX,可以大大简化Java应用程序的开发过程,提高开发效率。同时,JavaFX也提供了一些常用的设计器,如SceneBuilder,可以方便地创建JavaFX应用程序。
乐百川
2018/01/09
5.8K0
JavaFX 简介
JavaFx-Button
.button1 { -fx-font: 22 arial; -fx-base: #b6e7c9; }
shengjk1
2021/03/02
4.9K0
JavaFx-Button
【AI】机器学习-线性回归(未更新完)
回归问题主要关注确定一个唯一的因变量(dependent variable)(需要预测的值)和一个或多个数值型的自变量(independent variables)(预测变量)之间的关系。 需要预测的值:即目标变量,target,y,连续值 预测变量:影响目标变量的因素,predictors,X1…Xn,可以是连续值也可以是离散值 之间的关系:即模型,model,是我们要求解的
天天Lotay
2023/03/23
1.5K0
【AI】机器学习-线性回归(未更新完)
JavaFX入门(三):使用Eclipse开发JavaFX程序
JavaFX有着WPF类似的炫酷,但是由于WPF不是跨平台的,所以最近看了看JavaFX。下面是使用Eclipse进行开发的环境配置。
卡尔曼和玻尔兹曼谁曼
2019/01/22
6.1K0
JavaFX入门(三):使用Eclipse开发JavaFX程序
JavaFx-Label
效果 #### 代码 import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Sce
shengjk1
2021/03/02
2.8K0
JavaFx-Label
CTFSHOW刷题之旅--命令执行[29-77,118-124](未更新完)
这里匹配了flag|system|php这三个字符串且不分大小写。payload还是可以用web29的
YanXia
2023/04/07
7.4K0
CTFSHOW刷题之旅--命令执行[29-77,118-124](未更新完)
javaFX(二)-使用gradle+jdk14创建javafx程序
在上一篇文章中,我们一起学习了jlink和jdk14的模块化. 在本篇文章中,我们一起来学习gradle来新建一个javafx的Hello World 程序.
微笑的小小刀
2020/05/28
4.3K0
JavaFx-TableView
效果 代码 //表格视图 public class TableViewSample extends Application { /* TableView类内置提供了对列数据排序的功能。用户可以通
shengjk1
2021/03/02
4K0
JavaFx-TableView
通过代码WordPress文章超过N天未更新提示
方法:复制以下代码添加至文章页面Single.php 添加至合适的位置其中代码中的180为180天,可根据需要自行修改。
叮当叮
2020/04/20
1.1K0
通过代码WordPress文章超过N天未更新提示
python多进程,全局变量未更新问题
问题:子进程全局变量没有按照预想的更新,导致数据没有写入磁盘。进程池必须在if __name__ == '__main__'下面使用 复现:见实验代码 环境:centos7, python3.7 原因: 子进程的__name__属性值不是'__main__' 解决办法:需要用到的资源要在if __name__ == '__main__':语句之前确定好。在这语句之后的值不会传递到子进程里。
py3study
2020/01/02
2.8K0
抓紧更新!多个勒索软件组织针对未更新的IBM文件传输软件
IBM Aspera Faspex 是一个被企业广泛采用的文件传输应用程序,以能够安全和快速传输大型文件而广受青睐。 安全专家警告说,IBM 于2022年12月8日在软件中修补的一个漏洞(可用于回避身份验证和远程利用代码)正在被多组使用加密恶意软件的攻击者滥用。 虽然该漏洞在12月被修补,但IBM并没有立即详细说明该漏洞随后便在更新中修复了漏洞。在1月26日的安全警报中,IBM表示,该漏洞被命名为CVE-2022-47986,CVSS基本评分为9.8,可允许远程攻击者在系统上执行任意代码。 随后,恶意活动追
FB客服
2023/04/04
2.3K0
抓紧更新!多个勒索软件组织针对未更新的IBM文件传输软件
javafx的使用原理是什么?javafx与java有什么不同?
在生活中人们接触java比较多,很多人却不知道javafx是什么。javafx是一种编程语言,使用这种语言能够开发丰富的网络程序,目前javafx包括两种类别,一种是javafx脚本,另一种是javafx mobile(可以运行于手机等移动设备),在以后的发展中,javafx可能会拥有更多的作用。那么javafx的使用原理是什么?javafx与java有什么不同?
用户8739405
2021/07/02
4.8K0
JavaFX-TableView详解
前言 最近在着手一个学生管理系统的编写,涉及到TableView的使用,这前前后后的也有了些经验和想法想要记录和分享一下(事实上我正在想要用html网页代替界面),更多的是学习之用。 先看看TableView中有些什么 在IDEA中,按住Ctrl然后点中TableView关键字会自动跟进到它定义的地方,我们可以先看看这里面到底都有些什么东西。 你会比较先的看到它的两个构造函数: // 第一个构造函数 public TableView() { this(FXCollections.<S>observa
我没有三颗心脏
2018/04/26
3.5K0

相似问题

JavaFX TableView未更新

10

JavaFX标签未更新

112

JavaFX BarChart未更新

16

JavaFx ProgressBar未更新

40

JavaFX表行更新

2110
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文