首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JAVA :带有地图数据的TableVIew,当输入失去焦点时更新值

JAVA是一种广泛使用的编程语言,它具有跨平台、面向对象、高性能等特点。在云计算领域中,JAVA被广泛应用于前端开发、后端开发、移动开发等方面。

对于带有地图数据的TableView,当输入失去焦点时更新值,可以通过以下步骤实现:

  1. 创建一个TableView对象,并设置其列数和行数。
  2. 为每一列设置一个CellFactory,用于自定义每个单元格的显示内容和编辑行为。
  3. 在CellFactory中,创建一个TextField或其他合适的输入控件,并将其添加到单元格中。
  4. 监听输入控件的失去焦点事件,当输入控件失去焦点时,获取输入的值并更新到对应的数据模型中。
  5. 在数据模型中,更新对应的地图数据,并通知TableView刷新显示。

以下是一个示例代码:

代码语言:java
复制
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.TextFieldTableCell;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class MapTableViewExample extends Application {

    private TableView<MapData> tableView;
    private ObservableList<MapData> data;

    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Map TableView Example");

        // 创建数据
        data = FXCollections.observableArrayList();
        data.add(new MapData("Key1", "Value1"));
        data.add(new MapData("Key2", "Value2"));
        data.add(new MapData("Key3", "Value3"));

        // 创建TableView
        tableView = new TableView<>();
        tableView.setEditable(true);

        // 创建列
        TableColumn<MapData, String> keyColumn = new TableColumn<>("Key");
        keyColumn.setCellValueFactory(cellData -> cellData.getValue().keyProperty());
        keyColumn.setCellFactory(TextFieldTableCell.forTableColumn());
        keyColumn.setOnEditCommit(event -> {
            MapData mapData = event.getRowValue();
            mapData.setKey(event.getNewValue());
        });

        TableColumn<MapData, String> valueColumn = new TableColumn<>("Value");
        valueColumn.setCellValueFactory(cellData -> cellData.getValue().valueProperty());
        valueColumn.setCellFactory(TextFieldTableCell.forTableColumn());
        valueColumn.setOnEditCommit(event -> {
            MapData mapData = event.getRowValue();
            mapData.setValue(event.getNewValue());
        });

        tableView.getColumns().addAll(keyColumn, valueColumn);
        tableView.setItems(data);

        // 创建布局
        VBox vbox = new VBox(tableView);

        // 创建场景
        Scene scene = new Scene(vbox);

        primaryStage.setScene(scene);
        primaryStage.show();
    }

    public static class MapData {
        private final SimpleStringProperty key;
        private final SimpleStringProperty value;

        public MapData(String key, String value) {
            this.key = new SimpleStringProperty(key);
            this.value = new SimpleStringProperty(value);
        }

        public String getKey() {
            return key.get();
        }

        public void setKey(String key) {
            this.key.set(key);
        }

        public ObservableValue<String> keyProperty() {
            return key;
        }

        public String getValue() {
            return value.get();
        }

        public void setValue(String value) {
            this.value.set(value);
        }

        public ObservableValue<String> valueProperty() {
            return value;
        }
    }
}

在这个示例中,我们创建了一个带有两列的TableView,分别是Key和Value。每个单元格都使用TextField作为编辑控件,并在失去焦点时更新对应的数据模型。

对于带有地图数据的TableView,当输入失去焦点时更新值的应用场景可以是地图编辑器、数据可视化等需要展示和编辑地图数据的应用程序。

腾讯云提供了丰富的云计算产品和服务,其中与JAVA开发相关的产品包括云服务器、云数据库、云存储等。您可以通过访问腾讯云官网(https://cloud.tencent.com/)了解更多相关产品和详细信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java事件处理,低级事件类型:键盘事件+焦点事件,你真的懂吗?

Java窗口接收到敲击键盘操作,并定位于某个特定组件,这个组件就具有了焦点(focus)。...文本域具有焦点时候,可以将文本输入到文本域中;按钮有焦点时候,可以通过敲击空格键来“点击”这个按钮。 在一个窗口中,最多只有一个组件拥有焦点。...如果用户点击另一个组件,那么刚才拥有焦点组件就会失去(lose)焦点,而被点击组件就会获得焦点。用户还可以使用TAB键在各个组件上轮流切换焦点。这样可以遍历到所有能够接收输入焦点组件。...一个组件焦点监听器必须实现FocusListener接口及两个方法focusGained和focusLost。组件获得或失去焦点将会触发这两个方法。这两个方法都有一个FocusEvent类参数。...在JDK 1.4中,焦点转移时候,可以找到“对等物”组件或窗口。对等物是指在组件或窗口失去焦点获得焦点组件或窗口。相反地,组件或窗口获得焦点,对等物是刚刚失去焦点那个组件或窗口。

3.8K30

JavaSwing_8.1:焦点事件及其监听器 - FocusEvent、FocusListener

低级别事件指示Component已获得或失去输入焦点。 由组件生成此低级别事件(如一个TextField)。...暂时丢失焦点组件另一个操作,比如释放Window或拖动滚动条间接结果一焦点变化事件发生。...组件获得或失去键盘焦点,可调用侦听器对象中相关方法,并将 FocusEvent 传递给它。 API focusGained ? focusLost ?...例如,焦点从按钮转到文本字段,按钮会触发焦点丢失事件(文本字段为相反组件),然后文本字段会触发焦点获取事件(带有按钮作为相反组件)。失去焦点以及获得焦点事件可能是暂时。...例如,窗口失去焦点,会发生一个临时焦点丢失事件。临时获得焦点事件发生在弹出菜单上。 ?

4.6K10

java Swing用户界面组件文本输入:文本域+密码域+格式化输入

失去焦点行为 试想一下当用户在文本域中输入之后会发生什么情况。用户输入后最终决定离开这个区域,也许是通过鼠标点击另一个组件。于是,文本域就失去焦点(lose focus)。...键盘输入将作用于另一个组件。 格式化文本域失去焦点,格式器查看用户输入文本字符串。如果格式器知道如何把文本字符串转换为对象,文本就有效,否则就无效。...相反地,如果文本字符串无效,当前就不会改变。文本域恢复表示原值字符串。例如,如果用户输入错误(像x1),那么在文本域失去焦点就会恢复原值。...无论何时失去焦点,用户输入都将被抛弃,文本字符串恢复到原值。 注意:通常,“提交或恢复”默认行为是合理。只是存在一个潜在问题。假设一个对话框包含一个整型文本域。...格式器针对文本域调用toString方法来初始化文本域文本。文本域失去焦点,格式器使用带有String参数构造器构造相同类新对象作为当前。如果构造器抛出了异常,编辑就是无效

4K10

IntelliJ IDEA失焦自动重启服务解决方法

IDEA 热部署特性 热部署,即应用正属于运行状态,我们对应用源码进行了修改更新,在不重新启动应用情况下,可以能够自动更新内容重新进行编译并部署到服务器上,使修改立即生效。...现象 在使用 IntelliJ IDEA运行 SpringBoot 项目,你可能会遇到一个令人困扰问题:一旦你鼠标指针离开当前IDE窗口,点击其他位置, IDE 窗口会失去焦点,你 SpringBoot...解决方案 打开IDEAConfiguration 打开后,如下图所示: On frame deactivation : 失去焦点 ---- 该配置项便是配置IDEA失焦执行方案,IDEA共有三种策略...and resources : 失去焦点后,修改java ,resources文件都会立刻生效(与On update action中Update classes and resources一样,也是运行模式修改...java文件不会生效,debug模式修改java文件会立刻生效) 当我们勾选Update classes and resources,IDEA失焦,IDEA便会自动更新classes and resources

83720

在iOS中怎样创建可展开Table View?(下)

,会变为可见,cell合拢时候,优惠变为隐藏.实际上,通过改变那个属性,我们实际上实现了打开效果(或是合拢效果).所以,让我们修改上面的代码: func tableView(tableView...拾取值 从现在开始我们可完全专注于处理输入数据和与用户交互子cell控制了.我们通过实现逻辑,cell"idCellValuePicker"标识符被点击时候,将会才去行动.在我们demo里,...数组里更新开关,那样tableView刷新时候,它就会有合适状态.在下面的代码片段里,你将会注意到我们首先确定基于开关状态合适,然后我们分配给他们各自属性: func maritalStatusSwitchChangedState...cell.我们要动态地组成全名,一旦姓和名都输入了.我们需要指定包含文本框cell索引.最后我们会在顶级cell更新显示文本(全名),并且会刷新tableView,如下代码: func textfieldTextWasChanged...tableView方法,主要特点就是在一个plist文件中,所有cell描述都使用具体属性.我向你展示了当cell显示,打开或是选中时候,如何使用代码处理cell描述列表;此外,我给了你一个方法通过用户输入数据来直接更新

1.5K30

《玩游戏,学技术》第二篇,用消息队列实现所有游戏功能

pos Position } 玩家碰到炸弹时候,在一段时间内周期性向消息队列发送炸弹移动事件即可。...如何定时更新房间地图 地图障碍物是随机生成,障碍物分为可摧毁和不可摧毁两种类型。考虑到可摧毁障碍物会被玩家炸掉,我们需要给每个房间定时更新地图。 这个功能稍微有点难办。...Pulsar Function 允许你编写函数对 topic 中数据进行一些处理,函数输入就是一个或多个 topic 中消息,函数返回可以发送到其他 topic 中。...肯定是可以,刚才说了 Pulsar Function 可以把多个 topic 里消息作为输入,那么我只要在 Pulsar Function 里面包一个 Redis 客户端,当然可以把数据写到 Redis...数据导到 Redis 中,做一些聚合和排序工作就很简单了,后面的章节我介绍 Pulsar Connector 再具体讲解。

55220

Using JavaFX UI Controls 12 Table View

数据模型已经定义完毕,数据已经添加并关联到对应列,你还可以通过TableView setItems 方法来添加表格数据::table.setItems(data)....因为ObservableList 对象能够跟踪表格元素任何变化,其中数据变化,TableView 内容也自动更新。...你可以用 文本域 为Last Name, and Email columns键入新 Text Field 组件能够使你应用接收到用户输入文本。例12-7 创建3个文本域。...setOnEditCommit 方法具有编辑 指派更新数据到相应表格单元格能力。...表格列通过调用setCellValueFactory  来填充与指定键(key)相匹配数据。以便第一列包含与”A“键(key)对应,第二列包含于key(键)”B“对应

11.3K20

JavaScript集锦

value 域内容字符串.? defaultValue 域内容初始字符串.? 方法? focus() 设置对象输入焦点.? blur() 从对象上移走输入焦点.?...select() 选定对象输入区域.? 事件处理器? onFocus 输入焦点进入时执行.? onBlur 失去焦点执行.? onSelect 域中有部分文本被选定时执行.?...onChange 失去焦点且域相对于onFocus执行有所改变执行. 复选框(checkbox)对象? 属性? name NAME属性字符串.?...selected 反映option的当前选择状态布尔.? 事件处理器? onFocus 输入焦点进入域执行.? onBlur 失去输入焦点执行.?...onChange 失去焦点且如果域相对于onFocus执行时有所改变,则执行onChange.? Button对象? 表格中有三种类型按钮,由标记中TYPE属性定义:?

2.2K20

【javaScript案例】之搜索数据显示

,剩下细节可以去代码中查看~ 接着来看==JS进行比较==部分: 总思想呢,就是输入内容使下方显示搜索框,显示匹配数据;不输入输入数据不匹配,不显示数据或显示暂无数据;搜索框失去焦点使下方搜索框消失...当我们在搜索框中输入内容,我们可以调用onkeyup函数,先使下方搜索框display属性为block; 然后在其中调用forEach遍历数组中所有数据,通过value获得输入内容,调用indexOf...将该内容与数组中数据进行比较,若有匹配项的话,其返回是数组中数据下标,否则为-1; 若有匹配项的话,我们可以利用innerHTML,在下面的显示框中添加p标签,p中内容是匹配数据;如果没有就返回内容是...‘暂无数据p标签 该搜索框失去焦点,我们令下方搜索框display属性为none就可以了 代码如下: <!...show.innerHTML=str; } } } //onblur 事件会在对象失去焦点发生

68520

JavaWeb day3 JavaScript入门

如下图,点击了输入框后,输入框就获得了焦点。而下图示例是获取焦点后会更改输入背景颜色。 onblur 失去焦点事件。...如下图,点击了输入框后,输入框就获得了焦点;再点击页面其他位置,那输入框就失去焦点了。下图示例是将输入文本转换为大写。 onmouseout 鼠标移出事件。...完成以下需求: 输入失去焦点,验证输入内容是否符合要求 点击注册按钮,判断所有输入内容是否都符合要求,如果不合符则阻止表单提交 8.2 环境准备 下面是初始页面 <!...密码输入失去焦点,判断输入内容是否符合 长度是 6-12 位 规则,不符合使 id='password_err' span标签显示出来,给出用户提示。 校验手机号。...手机号输入失去焦点,判断输入内容是否符合 长度是 11 位 规则,不符合使 id='tel_err' span标签显示出来,给出用户提示。 代码如下: //1.

7.3K20

JavaWeb day3 JavsScript 入门

如下图,点击了输入框后,输入框就获得了焦点。而下图示例是获取焦点后会更改输入背景颜色。 图片 onblur 失去焦点事件。...如下图,点击了输入框后,输入框就获得了焦点;再点击页面其他位置,那输入框就失去焦点了。下图示例是将输入文本转换为大写。 图片 onmouseout 鼠标移出事件。...完成以下需求: 输入失去焦点,验证输入内容是否符合要求 点击注册按钮,判断所有输入内容是否都符合要求,如果不合符则阻止表单提交 8.2 环境准备 下面是初始页面 <!...密码输入失去焦点,判断输入内容是否符合 长度是 6-12 位 规则,不符合使 id='password_err' span标签显示出来,给出用户提示。 校验手机号。...手机号输入失去焦点,判断输入内容是否符合 长度是 11 位 规则,不符合使 id='tel_err' span标签显示出来,给出用户提示。 代码如下: //1.

7.5K10

微信小程序开发实战(9):单行输入和多行输入组件

同一个wxml文件中,只能有一个输入框设置该属性为true,输入框还包括后面要介绍textarea组件 focus:Boolean类型,默认是false,该属性可以让输入框获焦点,目前开发工具暂不支持...处理函数可以直接 return 一个字符串,将替换输入内容 bindfocus :EventHandle类型,输入框获得焦点触发,event.detail = {value: value} bindblur...:EventHandle类型,输入失去焦点触发,event.detail = {value: value} 注意:这些属性中,auto-focus和focus目前只能在真机上测试。...:Number类型,默认是140,最大输入长度,设置为0时候不限制最大长度 auto-focus:Boolean类型,默认是false,用于自动聚焦,获得焦点后,自动弹出软键盘,当前页面中只能有一个...类型,输入失去焦点触发 bindlinechange:EventHandle 类型,输入框行数变化时调用 下面的布局代码演示了textarea组件基本用法,由于第一个textarea组件设置了auto-height

2.6K20

Qt编写安防视频监控系统34-onvif事件订阅

一、前言 事件订阅是近期增加功能,主要是因为遇到越来越多一个应用场景,能够接收摄像机报警事件,比如几乎所有的摄像机后面会增加报警输入输出接口,如果用户外接了报警输入,则触发报警以后,对应事件也会通过...发送PullMessages时候带有超时时间,一旦到了超时时间,也需要重新发送PullMessages。 onvif主要功能 搜索设备,获取设备信息比如厂家、型号等。...接收到数据不是标准xml数据,没法按照正常节点解析来处理,只能用QXmlQuery来做。 每个厂家设备返回数据未必完全一致,基本上都不一致,需要进行模糊查找节点。...双击节点+拖曳节点+拖曳窗体交换位置,均自动更新url.txt。 支持从url.txt中加载通道视频播放,自动记忆最后通道对应视频,软件启动后自动打开播放。...右下角音量条控件,失去焦点自动隐藏,音量条带静音图标。 集成百度在线地图和离线地图,可以添加设备对应位置,自动生成地图,支持缩放和添加覆盖物等。 视频拖动到通道窗体外自动删除视频。

97800
领券