Vaadin ColorPicker IllegalArgumentException - PullRequest
       10

Vaadin ColorPicker IllegalArgumentException

0 голосов
/ 30 января 2012

Я скачал дополнение Vaadin Colorpicker, чтобы попробовать его, есть небольшая проблема, если я дважды щелкаю кнопку "ColorPicker", я получаю исключение IllegalArgumentException:

Исключение

java.lang.IllegalArgumentException: Window was already added to application - it can not be added to another window also.
    at com.vaadin.ui.Window.addWindow(Window.java:1447)
    at com.vaadin.addon.colorpicker.ColorPicker.changeVariables(Unknown Source)
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1299)
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1219)
    at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:735)

Другой вопрос:

Я хочу, чтобы окно colorPicker всплыло, если я нажимаю на элемент в меню, что-то вроде, если я нажимаю «установить цвет», я получаю окно colorPicker. довольно трудно разместить кнопку на моем графическом интерфейсе: P

РЕДАКТИРОВАТЬ:

Я добавляю ColorPicker следующим образом:

    colorPicker = new ColorPicker();
    colorPicker.setButtonCaption("Set Color");
    colorPicker.setRGBVisibility(false);
    colorPicker.setHSVVisibility(false);
    colorPicker.setHistoryVisibility(false);
    colorPicker.addListener(this);
    window.addComponent(colorPicker);

1 Ответ

2 голосов
/ 31 января 2012

Я думаю, вам следует попробовать этот код в своем приложении:

public class MyApplication extends Application {

    @Override
    public void init() {
        Window mainWindow = new Window("Your Application");

        // Create a color picker
        ColorPicker cp = new ColorPicker("ColorPicker", Color.RED);

        // Add a color change listener to the color picker
        cp.addListener(new ColorPicker.ColorChangeListener() {
            @Override
            public void colorChanged(ColorChangeEvent event) {
                MyApplication.this.getMainWindow()
                .showNotification("Color changed!");
            }
        });

        mainWindow.addComponent(cp);
        setMainWindow(mainWindow);
    }
}

Если он не работает, значит, в ColorPicker есть дефект (и вы можете сообщить об этом здесь: http://dev.vaadin.com/).

Если приведенный выше код работает, проблема заключается в вашем коде (в этом случае, поделитесь с нами большим количеством своего кода - вы даже можете поделиться целым классом для).

...