首页
学习
活动
专区
工具
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/)了解更多相关产品和详细信息。

相关搜索:单击当输入失去焦点时移动的按钮未注册当存在NaN值时,无法更新Pandas数据帧中的值带有数据库值和更新的Laravel + Vuejs输入表单带有UpdateSourceTrigger的TextBox上的文本=当文本输入的强制导致源值保持不变时,不会更新PropertyChanged当输入具有页面加载或用户更改的值时更新Alpinejs x-data当key出现在地图中时,有条件地替换数据帧中的值当MyBatis传入的参数数据类型为java map时,如何执行更新操作?当该值在mat-option期间更新时,不会在来自模板的输入上触发valueChanges当给定特定条件时,通过pandas数据帧的列中的用户定义函数输入值当组件处于从函数传递的状态时,Ant设计表单验证不起作用,并且不更新输入值当我尝试更新表中的值时,我得到的输入字符串是:"{id}(id=1)“的java.lang.NumberFormatException:带有pandas的数据帧将索引设置为date_range,但当它被设置时,所有值都将变为NaN如何编写一个函数,当某些值为none数据类型时,将带有附加条件的列表中的值进行比较当表包含NULL值时,如何使用joins将数据从DB添加到Java Swing中的jTable?当数据框中的列表项与另一个数据框列中的列表项匹配时,更新数据框中的NaN值获取选择输入选项的数据帧的唯一值,但仅当数据帧是在server.ui中定义而不是全局定义时提交一个捕获一些错误并保存其他数据的表单,当表单重新提交时,我如何让这些输入值清空?如何在postgres中编写触发器,当数据插入到同一表中具有相同值的另一cloum中时,更新另一列?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

    低级别事件指示Component已获得或失去输入焦点。 由组件生成此低级别事件(如一个TextField)。 该事件被传递给每一个FocusListener或FocusAdapter注册,以接收使用组件的此类事件对象addFocusListener方法。 ( FocusAdapter对象实现FocusListener接口。)每个此类侦听器对象获取此FocusEvent当事件发生时。 有两个焦点事件级别:持久性和暂时性的。 永久焦点改变事件发生时焦点直接移动从一个组件到另一个,例如通过到requestFocus的(呼叫)或作为用户使用TAB键遍历组件。 当暂时丢失焦点的组件的另一个操作,比如释放Window或拖动滚动条的间接结果一时焦点变化的事件发生。 在这种情况下,原来的聚焦状态将被自动一旦操作完成恢复,或者,对于窗口失活的情况下,当窗口被重新激活。 永久和临时焦点事件使用FOCUS_GAINED和FOCUS_LOST事件id传递; 水平可以使用isTemporary()方法的事件区分开来。 如果未指定的行为将导致的id任何特定的参数FocusEvent实例不是从范围FOCUS_FIRST到FOCUS_LAST

    01
    领券