我是GWT的新手,我需要重新解决这个问题。我需要用gwt-links创建一个小部件。为了实现它,我需要从本体中获取一些数据,然后根据结果创建图形。问题是,当我将java代码与gwt代码混合时,它不想编译。
问题是,如何创建一个将放在http页面中的widged?
代码现在看起来像这样:
public class Example1 {
@Override
public void draw() {
// Create the elements
String ontology = Ontology.get(1);
Widget labelHello = new BoxLabel(ontology);
controller.addWidget(labelHello,25,115);
// Add DnD logic
PickupDragController dragController = new PickupDragController(controller.getView(), true);
dragController.makeDraggable(labelHello);
}
public Widget asWidget() {
return controller.getView();
}
}
Ontology.get()不想编译。
答案 0 :(得分:1)
答案 1 :(得分:1)
GWT projects使用三个包(默认情况下)
com.myapp.client
com.myapp.shared
com.myapp.server
默认情况下,共享和客户端软件包中的所有内容都是compiled to JavaScript。 导入到共享和客户端包中的类的每个类必须是:
如果代码ISolver
可以编译为JavaScript,则必须创建module.gwt.xml并从此模块继承您的项目。这可以使GWT编译器将ISolver(及其实现)编译为JavaScript。
如果您的代码无法编译为GWT,则必须write a remote-service进行计算。
答案 2 :(得分:0)
我真的不想将代码编译成javascript。我想要做的就是创建一个GWT小部件(这是一个图形)。
要创建窗口小部件,我需要进行一些计算和存储库提取。我不想翻译它(存储库提取),我只需要使用它来创建图形模型。
基本上,这是我想要做的事情:
String l = Repository.getLabel(); // Some advanced calculations that use many JavaSE classes;
GWTWidget widget = new GWTWidget(l); // widget, that will be displayed on a page.
但是当我在方法onModuleLoad中添加某些内容时,它无法编译。
这可能是一个简单的问题,但我并不真正与GWT有关,而且我被迫重拍某人的工作。
public void onModuleLoad() {
System.out.println("tes");
VerticalPanel mainPanel = new VerticalPanel();
RootPanel.get().add(mainPanel);
//
ISolver solver = null;
System.out.println("TEST2");
}
ERROR: Line 53: No source code is available for type pr.ISolver; did you forget to inherit a required module? ERROR: Unable to find type 'client.Link' ERROR: Hint: Previous compiler errors may have made this type unavailable
和其他行以“无源代码......”开头。
ISolver是一个界面,但我不想翻译它。我想用它来计算。