내가 필요한 것은 정확히 텍스트의 이외에 이미지가 있어야하는 예외적 인 동작의 관점에서 볼 때 gwt PushButton입니다. 내 ui.xml 파일에서 GWT, GWTP과 UiBinderGWT 사용자 정의 푸시 버튼이 ImageResources와 함께 작동하지 않습니다.
를 사용
, 다음 코드는 작동하지만 버튼
<g:SimplePanel height="100%" styleName="{style.button}"
width="100%">
<g:HTMLPanel width="100%" height="100%">
<table align="center">
<tr>
<td>
<g:Image styleName="{style.pane}" resource='{res.Edit}' />
</td>
<td>
<g:Label ui:field="label2" text="Edit Project Edit Project" />
</td>
</tr>
</table>
</g:HTMLPanel>
</g:SimplePanel>
을 내가 올려 놓으면 다른 이미지를 지정하거나 클릭 할 수 없습니다 솔루션을 검색 한 후, 나는 나중에
처럼 내 ui.xml에 사용되는 어떤 herepackage com.test.gwtptestproject.client;
import com.google.gwt.dom.client.Style;
import com.google.gwt.dom.client.Style.Float;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Element;
import com.google.gwt.user.client.ui.Image;
public class MyButton implements SafeHtml {
private static final long serialVersionUID = 1L;
Image img;
private String text;
private String innerHtml = "";
public void setImage(ImageResource imgr) {
this.img = new Image(imgr);
update();
}
public void setText(String text) {
this.text = text;
update();
}
private void update() {
Element d = DOM.createDiv();
if (img != null) {
Element di = DOM.createDiv();
Style s = di.getStyle();
s.setPaddingLeft(5, Unit.PX);
s.setPaddingRight(5, Unit.PX);
s.setFloat(Float.LEFT);
di.appendChild(img.getElement());
d.appendChild(di);
}
if (text != null) {
Element t = DOM.createDiv();
t.setInnerText(text);
d.appendChild(t);
}
innerHtml = d.getInnerHTML();
}
public MyButton() {
}
@Override
public String asString() {
return innerHtml;
}
}
에서이 코드를 건너 왔어요
...
<ui:with field='res' type='com.test.gwtptestproject.resources.ImageResources' />
...
<g:PushButton>
<g:upFace>
<MyButton image="{res.Edit}" text="Edit"></MyButton>
</g:upFace>
</g:PushButton>
내 ImageResources 패키지는 다음과 같은 인터페이스를 포함하고 나는 다음과 같은 오류를 가지고 계속 디자이너를 열려고 내가 '돈 때이 패키지는 gwt.xml 파일
public interface ImageResources extends ClientBundle {
public ImageResources INSTANCE = GWT.create(ImageResources.class);
@Source("Edit.png")
ImageResource Edit();
@Source("Edit_Hover.png")
ImageResource Edit_Hover();
@Source("Edit_Click.png")
ImageResource Edit_Click();
}
의 소스에 추가 t (I 브라우저에서 페이지에 액세스하려고하면 나도 같은 오류가) 나는 응용 프로그램이 ImageResource 아닌 문자열 ISN '를 기대한다 image="{res.Edit}"
을 쓸 때 내가 이해에서
[ERROR] java.lang.String required, but {res.Edit} returns com.google.gwt.resources.client.ImageResource: <MyButton image='{res.Edit}' text='Edit'> (:110)
[ERROR] Deferred binding failed for 'com.test.gwtptestproject.client.SecondView.Binder'; expect subsequent failures
그것을 해결하는 방법을 알고 그렇지?
* 참고 : 나는 웹 개발 (학교 프로젝트)에 아주 새로운 해요 그래서 당신이 답변 해 드리겠습니다 때 명백한 경우를 제외하고 이미 몇 가지를 알 수있는 가정하지 않는
이렇게하면 나에게도 같은 오류가 발생합니다. – Sim