可否让ColorPicker控件默认切换到swatches标签页

可否让ColorPicker控件默认切换到swatches标签页?或者把swatches标签页放在第一个?

这就是个 tabs,通过 unwrap + 反射拿到这个 tabs 之后,默认设置选中第三个 tab 就行。顺序不能改,Vaadin 里面写死了的。

请问tabs在哪个类,找了半天并没有找到持有tabs的类。

tabs 在 com.vaadin.ui.components.colorpicker.ColorPickerPopup 类中。可通过 ColorPicker 的成员 window 访问:
image

window不知道什么时候才初始化好,在afterShow事件都取不到
image
有什么好建议?

我感觉可以判断一下如果 window 是 null 就手动调用 createPopupWindow() 方法创建。从后面的逻辑来看Vaadin 也是在点击按钮时才创建 window。

看代码有好多要设置

if (window == null) {
                // Haulmont API
                createPopupWindow(color);
                window.setCaption(popupCaption);

                window.setRGBTabVisible(rgbVisible);
                window.setHSVTabVisible(hsvVisible);
                window.setSwatchesTabVisible(swatchesVisible);
                window.setHistoryVisible(historyVisible);
                window.setPreviewVisible(textfieldVisible);

                window.addCloseListener(
                        event -> getState().popupVisible = false);
                // Haulmont API
                window.addValueChangeListener(createColorValueChangeListener());

                window.getHistory().setValue(color);
                window.setPositionX(positionX);
                window.setPositionY(positionY);
                window.setVisible(true);
                window.setValue(color);
                window.setModal(modal);

                parent.addWindow(window);
                window.focus();

放弃算了,封装的太死了。感谢支持!