【问题标题】:JAVA GWT cell table action on control click控件单击时的 JAVA GWT 单元格表操作
【发布时间】:2015-06-27 03:15:02
【问题描述】:

我有一个包含 7 列和 23 行复选框的单元格表。我需要以某种方式添加一个处理程序,以便当一个单元格被控制+单击时,列中的所有单元格都将切换是否选中了它们的框。我看过一些类似的帖子,但没有描述如何处理控制+点击。 (如:Adding clickHandler to row in CellTable in GWT?)。这个方法的问题是它使用了一个没有与 CTRL 匹配的 BrowserEvents 类。下面列出了我的单元格表的一些相关代码:

cellTable = new CellTable<TaskSchedule>();
TextColumn<TaskSchedule> taskNameColumn = new TextColumn<TaskSchedule>() {
        @Override
        public void render(Cell.Context context,
                           TaskSchedule object,
                           SafeHtmlBuilder sb) {
            String taskName = getValue(object);


        @Override
        public String getValue(TaskSchedule object) {
            return object.getTaskKey();
        }
    };
cellTable.addColumn(taskNameColumn, "Task Name");
    cellTable.addColumn(createCheckBoxColumn(0), "Monday");
    cellTable.addColumn(createCheckBoxColumn(1), "Tuesday");
    cellTable.addColumn(createCheckBoxColumn(2), "Wednesday");
    cellTable.addColumn(createCheckBoxColumn(3), "Thursday");
    cellTable.addColumn(createCheckBoxColumn(4), "Friday");
    cellTable.addColumn(createCheckBoxColumn(5), "Saturday");
    cellTable.addColumn(createCheckBoxColumn(6), "Sunday");

    cellTable.setColumnWidth(cellTable.getColumn(0), 36, Style.Unit.PCT);
    cellTable.setColumnWidth(cellTable.getColumn(1), 9, Style.Unit.PCT);
    cellTable.setColumnWidth(cellTable.getColumn(2), 9, Style.Unit.PCT);
    cellTable.setColumnWidth(cellTable.getColumn(3), 9, Style.Unit.PCT);
    cellTable.setColumnWidth(cellTable.getColumn(4), 9, Style.Unit.PCT);
    cellTable.setColumnWidth(cellTable.getColumn(5), 9, Style.Unit.PCT);
    cellTable.setColumnWidth(cellTable.getColumn(6), 9, Style.Unit.PCT);
    cellTable.setColumnWidth(cellTable.getColumn(7), 9, Style.Unit.PCT);


    cellTable.setRowData(taskSchedules);

【问题讨论】:

    标签: java gwt listener gwt-celltable


    【解决方案1】:

    你可以用这个:

    table.addCellPreviewHandler(new Handler<MyObject>() {
        @Override
        public void onCellPreview(CellPreviewEvent<MyObject> event) {
            if ("click".equals(event.getNativeEvent().getType())) {
                if (event.getNativeEvent().getCtrlKey()) {
                    // CTRL button was pressed during the click
                }
            }
        }
    });
    

    【讨论】:

    • 那我怎么知道编辑点击了哪个列索引:nvm一开始没有看到event.getColumn方法
    猜你喜欢
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 2022-01-28
    • 1970-01-01
    • 2013-09-07
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多