Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gwt 如何在高亮显示上更改鼠标?_Gwt - Fatal编程技术网

Gwt 如何在高亮显示上更改鼠标?

Gwt 如何在高亮显示上更改鼠标?,gwt,Gwt,在GWT中,我使用的是CellTable 当您将鼠标悬停在CellTable上时,它会高亮显示每一行 如何更改鼠标悬停时高亮显示的行为?具体而言: 更改突出显示的颜色 禁用/启用 使其仅高亮显示光标处的特定网格项(而不是整行) (我目前的做法是创建一组1列宽的单元格表,并将它们添加到垂直面板布局中……造成一种错觉,即有一个单元格表,并根据光标高亮显示每个网格。这不好吗?为什么?性能?) CellTable可以通过CSS设置样式: 要禁用高亮显示,只需将hover CSS属性设置为nothin

在GWT中,我使用的是CellTable

当您将鼠标悬停在CellTable上时,它会高亮显示每一行

如何更改鼠标悬停时高亮显示的行为?具体而言:

  • 更改突出显示的颜色
  • 禁用/启用
  • 使其仅高亮显示光标处的特定网格项(而不是整行)
(我目前的做法是创建一组1列宽的单元格表,并将它们添加到垂直面板布局中……造成一种错觉,即有一个单元格表,并根据光标高亮显示每个网格。这不好吗?为什么?性能?)

  • CellTable可以通过CSS设置样式:

  • 要禁用高亮显示,只需将hover CSS属性设置为nothing

  • 可能-尝试调整
    .cellTableSelectedRow
    .cellTableSelectedRowCell


  • 这是原始的CellTable.css:

    您会注意到CellTable使用了一个ResourceBundle,这意味着所有css样式都会被混淆。。。这使得覆盖样式更加困难

    CellTable构造函数实际上允许您覆盖默认的ResourceBundle。因此,首先,您需要创建自己的资源包,如下所示:

    public interface CellTableResources extends Resources {
    
            public CellTableResources INSTANCE =
                    GWT.create(CellTableResources.class);
    
            /**
             * The styles used in this widget.
             */
            @Source("CellTable.css")
            CellTable.Style cellTableStyle();
    }
    
       CellTableResources.INSTANCE.cellTableStyle().ensureInjected();
       myCellTable = new CellTable<T>(Integer.MAX_VALUE,CellTableResources.INSTANCE);
    
    然后,您需要创建自己的CSS文件。我建议将CellTable样式直接复制到项目中,并以此作为起点。你可以在这里找到它:

    确保先注入样式,然后将其输入CellTable的构造函数,如下所示:

    public interface CellTableResources extends Resources {
    
            public CellTableResources INSTANCE =
                    GWT.create(CellTableResources.class);
    
            /**
             * The styles used in this widget.
             */
            @Source("CellTable.css")
            CellTable.Style cellTableStyle();
    }
    
       CellTableResources.INSTANCE.cellTableStyle().ensureInjected();
       myCellTable = new CellTable<T>(Integer.MAX_VALUE,CellTableResources.INSTANCE);
    
    CellTableResources.INSTANCE.cellTableStyle().ensureInjected();
    myCellTable=newcelltable(Integer.MAX_值,CellTableResources.INSTANCE);
    
    具体来说,您需要调整这些样式:

    • CellTable键盘SelectedRow
    • CellTable键盘SelectedRowCell
    • cellTableSelectedRow
    • cellTableSelectedRowCell
    • 单元格表键盘选择的单元格
    需要注意的是,单元格表区分“选定行”和“键盘选定行”。选定的行是实际选定的行(即通过SelectionModel)。“键盘选定行”指的是当用户按下向上/向下键时突出显示的内容,但并不意味着该行已实际选定(如果有意义)。

    我只为列表中的数字2添加内容,您只需执行以下操作即可

    cellList.setSkipRowHoverStyleUpdate(true)
    

    这将完全禁用高亮显示。CellList上还有两个与悬停相关的
    setSkip
    -函数。

    有一个澄清,我建议复制CellTableBasic.css样式并将其用作基线:。。。标准的CellTable.css样式表包括图像资源,CellTableBasic.css是纯css,可能更容易修改最后一段中的+1,在该段中,您解释了“选定行”和“键盘选定行”之间的差异。这是我第一次看到它解释这如何有助于消除实际的突出显示?我尝试覆盖所有提到的样式(包括未提及的
    cellTableHoveredRow
    cellTableHoveredRowCell
    ),但我无法使高亮显示完全消失。我可以稍微改变一下,使它看起来不一样,但我不能删除它。也许有人可以共享实际的CSS来删除鼠标在行上的突出显示?谢谢。这是我很久以前做的一个gannt图表项目的代码。CellTableResources.INSTANCE.cellTableStyle().ensureInjected();taskTable=新的CellTable(Integer.MAX_值,CellTableResources.INSTANCE);您能否提供一些关于如何执行列表中的第2项“只需将hover CSS属性设置为nothing”的详细信息?在哪里设置该属性,在哪个CSS类上设置,等等?谢谢