0

我正在创建一个已在 GWT Showcase 中使用的 Composite 小部件。

new DialogBoxWidget(constants);

//这里我遇到了错误:构造函数 DialogBoxWidget(ShowcaseConstants) 未定义。

/**
* Constants used throughout the showcase.
*/
public interface ShowcaseConstants extends MenuConstants,       
CwDialogBox.CwConstants{
     /**
      * The path to source code for examples, raw files, and style definitions.
      */
  String DST_SOURCE = "gwtShowcaseSource/";
}

这是我的 DialogBoxWidget.java,它是 Composite

 @ShowcaseSource
public static interface CwConstants extends Constants {
    String cwDialogBoxCaption();

    String cwDialogBoxClose();

    String cwDialogBoxDescription();

    String cwDialogBoxDetails();

    String cwDialogBoxItem();

    String cwDialogBoxListBoxInfo();

    String cwDialogBoxMakeTransparent();

    String cwDialogBoxName();

    String cwDialogBoxShowButton();
}

/**
 * An instance of the constants.
 */
@ShowcaseData
private final CwConstants constants;

/**
 * Constructor.
 * @param constants2 
 *
 * @param constants the constants
 */
public DialogBoxWidget(CwConstants constants) {

    // Add a hyper link to each section in the Widgets category
    ShowcaseConstants allConstants = GWT.create(ShowcaseConstants.class);
    this.constants = constants;
    // Create the dialog box
    final DialogBox dialogBox = createDialogBox();
    dialogBox.setGlassEnabled(true);
    dialogBox.setAnimationEnabled(true);

    // Create a button to show the dialog Box
    Button openButton = new Button(
            allConstants.cwDialogBoxShowButton(), new ClickHandler() {
                public void onClick(ClickEvent sender) {
                    dialogBox.center();
                    dialogBox.show();
                }
            });

    // Create a ListBox
    HTML listDesc = new HTML(
            "<br><br><br>" + allConstants.cwDialogBoxListBoxInfo());

    ListBox list = new ListBox();
    list.setVisibleItemCount(1);
    for (int i = 10; i > 0; i--) {
        list.addItem(allConstants.cwDialogBoxItem() + " " + i);
    }

    // Add the button and list to a panel
    VerticalPanel vPanel = new VerticalPanel();
    vPanel.setSpacing(8);
    vPanel.add(openButton);
    vPanel.add(listDesc);
    vPanel.add(list);
    initWidget(vPanel);
}

下面是 onModuleLoad() 的代码

ShowcaseConstants constants = GWT.create(ShowcaseConstants.class);
 @ShowcaseSource
public void onModuleLoad() {

    DialogBoxWidget dialogBox = new DialogBoxWidget(constants);//Here I am stucked with error : The constructor DialogBoxWidget(ShowcaseConstants) is undefined
    //Add it to the RootPanel.
    RootPanel.get().add(dialogBox);
}
4

2 回答 2

2

将您的构造函数更改为

public DialogBoxWidget(ShowcaseConstants  constants) {

你接受 CwConstants

public DialogBoxWidget(CwConstants constants) {

而你正试图通过ShowcaseConstants

或创建

CwConstants constants = GWT.create(CwConstants.class);

并通过这个。

于 2013-08-17T10:21:55.283 回答
0

我敢打赌你的重构/复制粘贴错误:ShowcaseConstants扩展CwDialogBox.CwConstants而不是DialogBoxWidget.CwConstants.

于 2013-08-17T13:15:47.710 回答