Я использую Smart GWT 3.0 - в частности, я работаю с образцом поворота, который использует класс рисования.
Я изменил нарисованный треугольник и вместо этого хочу показать изображение на его месте - я хочу этоизображение поворачивается так же, как другие фигуры поворачиваются, когда пользователь нажимает на ползунок (как показано на витрине)
В затмении после изменения кода и его сохранения не отображается ошибка.
Я изменил код в форме треугольника и заменил его следующим:
DrawImage drawImg= new DrawImage();
drawImg.setSrc("other/earth.png");
drawImg.setDrawPane(drawPane);
drawImg.setLeft(100);
drawImg.setHeight(100);
drawImg.draw();
Однако при запуске режима GWT Dev и попытке увидеть страницу HTML появляется ошибка «Uncaught Exception».с чертежами.
Ниже приводится ошибка, которую я получаю в Google Chrome, когда приложение не запускается -
onModuleLoad() threw an exception
Exception while loading module com.arvindikchari.bspinner.client.Spinner. See Development Mode for details.
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.google.gwt.dev.shell.ModuleSpace.onLoad(ModuleSpace.java:396)
at
com.google.gwt.dev.shell.OophmSessionHandler.loadModule(OophmSessionHandler.java:200)
at
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:525)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
at java.lang.Thread.run(Unknown Source)
Caused by: com.google.gwt.core.client.JavaScriptException: (TypeError): Cannot call method 'create' of undefined
at
com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
at
com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
at com.smartgwt.client.widgets.drawing.DrawPane.create(DrawPane.java)
at com.smartgwt.client.widgets.BaseWidget.getOrCreateJsObj(BaseWidget.java:361)
at com.smartgwt.client.widgets.layout.Layout.addMember(Layout.java:1153)
at com.arvindikchari.bspinner.client.Spinner.onModuleLoad(Spinner.java:244)
... 9 more
ОБНОВЛЕНИЕ -
Ошибка в строке244 onModuleLoad - код в этой строке приведен ниже -
layout.addMember(drawPane);
Ошибка возникает из-за кода onModuleLoad - весь код для этого теперь приведен ниже -
public void onModuleLoad() {
drawPane = new DrawPane();
drawPane.setHeight(450);
drawPane.setWidth(700);
drawPane.setLeft(25);
drawPane.setShowEdges(true);
drawPane.setEdgeSize(4);
drawPane.setBackgroundColor("papayawhip");
drawPane.setOverflow(Overflow.HIDDEN);
drawPane.setCursor(Cursor.AUTO);
drawPane.addDrawHandler(new DrawHandler() {
@Override
public void onDraw(DrawEvent event) {
DrawPane drawPane = (DrawPane) event.getSource();
DrawLabel imglabel= new DrawLabel();
DrawImage drawImg= new DrawImage();
drawImg.setSrc("other/earth.png");
drawImg.setDrawPane(drawPane);
drawImg.setLeft(100);
drawImg.setHeight(100);
drawImg.draw();
DrawLabel curveLabel = new DrawLabel();
curveLabel.setDrawPane(drawPane);
curveLabel.setLeft(200);
curveLabel.setTop(175);
curveLabel.setContents("Curve");
curveLabel.draw();
DrawCurve drawCurve = new DrawCurve();
drawCurve.setDrawPane(drawPane);
drawCurve.setStartPoint(new Point(200,50));
drawCurve.setEndPoint(new Point(300,150));
drawCurve.setControlPoint1(new Point(250,0));
drawCurve.setControlPoint2(new Point(250,200));
drawCurve.draw();
DrawLabel linePathLabel = new DrawLabel();
linePathLabel.setDrawPane(drawPane);
linePathLabel.setLeft(350);
linePathLabel.setTop(175);
linePathLabel.setContents("Line Path");
linePathLabel.draw();
DrawLinePath drawLinePath = new DrawLinePath();
drawLinePath.setDrawPane(drawPane);
drawLinePath.setStartPoint(new Point(350,50));
drawLinePath.setEndPoint(new Point(450,150));
drawLinePath.draw();
DrawLabel pathLabel = new DrawLabel();
pathLabel.setDrawPane(drawPane);
pathLabel.setLeft(500);
pathLabel.setTop(175);
pathLabel.setContents("Path");
pathLabel.draw();
DrawPath drawPath = new DrawPath();
drawPath.setDrawPane(drawPane);
drawPath.setPoints(
new Point(500,50),
new Point(525,50),
new Point(550,75),
new Point(575,75),
new Point(600,75),
new Point(600,125),
new Point(575,125),
new Point(550,125),
new Point(525,150),
new Point(500,150)
);
drawPath.draw();
DrawLabel ovalLabel = new DrawLabel();
ovalLabel.setDrawPane(drawPane);
ovalLabel.setLeft(50);
ovalLabel.setTop(415);
ovalLabel.setContents("Oval");
ovalLabel.draw();
DrawOval drawOval = new DrawOval();
drawOval.setDrawPane(drawPane);
drawOval.setLeft(50);
drawOval.setTop(300);
drawOval.setWidth(100);
drawOval.setHeight(100);
drawOval.draw();
DrawLabel rectLabel = new DrawLabel();
rectLabel.setDrawPane(drawPane);
rectLabel.setLeft(200);
rectLabel.setTop(415);
rectLabel.setContents("Rect");
rectLabel.draw();
DrawRect drawRect = new DrawRect();
drawRect.setDrawPane(drawPane);
drawRect.setLeft(200);
drawRect.setTop(300);
drawRect.setWidth(150);
drawRect.setHeight(100);
drawRect.draw();
DrawLabel lineLabel = new DrawLabel();
lineLabel.setDrawPane(drawPane);
lineLabel.setLeft(400);
lineLabel.setTop(415);
lineLabel.setContents("Line");
lineLabel.draw();
DrawLine drawLine = new DrawLine();
drawLine.setDrawPane(drawPane);
drawLine.setStartPoint(new Point(400,300));
drawLine.setEndPoint(new Point(500,400));
drawLine.draw();
DrawLabel sectorLabel = new DrawLabel();
sectorLabel.setDrawPane(drawPane);
sectorLabel.setLeft(550);
sectorLabel.setTop(415);
sectorLabel.setContents("Sector");
sectorLabel.draw();
DrawSector drawSector = new DrawSector();
drawSector.setDrawPane(drawPane);
drawSector.setCenterPoint(new Point(550,300));
drawSector.setStartAngle(0);
drawSector.setEndAngle(90);
drawSector.setRadius(100);
drawSector.draw();
}
});
ValueChangedHandler shapeRotationSliderValueChangeHandler = new ValueChangedHandler() {
@Override
public void onValueChanged(ValueChangedEvent event) {
DrawItem[] drawItems = drawPane.getDrawItems();
for (int i = 0; i < drawItems.length; i++) {
DrawItem drawItem = drawItems[i];
if(drawItem instanceof DrawLabel){
continue;
}
drawItem.rotateTo(event.getValue());
}
drawPane.redraw();
}
};
Slider shapesRotationSlider = new Slider();
shapesRotationSlider.setMinValue(0);
shapesRotationSlider.setMaxValue(360);
shapesRotationSlider.setNumValues(360);
shapesRotationSlider.setWidth(400);
shapesRotationSlider.setLeft(25);
shapesRotationSlider.setTop(450);
shapesRotationSlider.setValue(0);
shapesRotationSlider.setTitle("Rotate Shapes");
shapesRotationSlider.setVertical(false);
shapesRotationSlider.addValueChangedHandler(shapeRotationSliderValueChangeHandler);
shapesRotationSlider.draw();
VLayout layout = new VLayout();
layout.addMember(drawPane);
layout.addMember(shapesRotationSlider);
layout.draw();
layout.draw();
}