如何更改鼠标突出显示?

Tre*_*ith 7 gwt

在GWT中,我使用的是CellTable.

当您将鼠标悬停在CellTable上时,它会突出显示每一行.

如何更改鼠标突出显示的行为?特别:

  • 改变高亮的颜色
  • 禁用启用
  • 使其仅突出显示光标处的特定网格项(而不是整行)

(我当前的黑客攻击是创建一堆1列宽的CellTables并将它们添加到VerticalPanel布局......创建一个幻觉,即有一个CellTable并根据光标突出显示每个网格.这是不是很好?为什么?表现?)

Bra*_*ski 17

你会注意到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();
}
Run Code Online (Sandbox Code Playgroud)

然后你需要创建自己的CSS文件.我建议将CellTable样式直接复制到项目中,并将其作为起点.您可以在此处找到它:http: //code.google.com/p/google-web-toolkit/source/browse/trunk/user/src/com/google/gwt/user/cellview/client/CellTable.css

确保首先注入样式,然后将它只是这样输入CellTable的构造函数:

   CellTableResources.INSTANCE.cellTableStyle().ensureInjected();
   myCellTable = new CellTable<T>(Integer.MAX_VALUE,CellTableResources.INSTANCE);
Run Code Online (Sandbox Code Playgroud)

具体来说,您需要调整这些样式:

  • cellTableKeyboardSelectedRow
  • cellTableKeyboardSelectedRowCell
  • cellTableSelectedRow
  • cellTableSelectedRowCell
  • cellTableKeyboardSelectedCell

值得注意的是,单元格表区分了"选定行"和"键盘选定行".所选行是选定的实际行(即通过SelectionModel).键盘选定行指的是当用户按下向上/向下键时突出显示的内容,但并不意味着实际选择了行(如果这样做有意义).