Re: How to make my java applets more user friendly
On 7/13/2014 10:49 AM, Arne Vajh?j wrote:
On 7/13/2014 6:15 AM, Tom Adams wrote:
On Sunday, July 6, 2014 12:26:27 PM UTC-4, Arne Vajh?j wrote:
On 7/4/2014 5:55 AM, Tom Adams wrote:
I recently started looking at GWT. I find mixed info on whether it
will compile an applet (the UI classes I guess?),
It won't.
You write a GUI application in Java. GWT translates it to JavaScript
and it runs in any browser with no requirement for Java.
I am confused by this. Perhaps it's the terminology. You say it
won't "compile" and applet, but it will "translate" an applet.
When I said compile, I meant compile where the target "machine code"
was javascript. That's the same a translate, right?
Yes.
GWT does compile/translate to JavaScript.
But it does not compile/translate applets.
It compiles/translates Java code written in its own GUI framework.
What I want to know is that if I go to the trouble of climbing the GWT
learning curve, will I just have to issue a command and end up with
some javascript that will do what the applet does without needing the
java plugin.
Users will not need Java installed.
Or, will I have to re-code a lot of the java code even if I am using
the GWT?
The code will need to be rewritten. But I think you will find all the
concepts very familiar!
Let me post a small example:
package test.client;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.InlineLabel;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.TabPanel;
import com.google.gwt.user.client.ui.RichTextArea;
import com.google.gwt.user.client.ui.TextBox;
public class Page implements EntryPoint {
public void onModuleLoad() {
final TextBox tb1 = new TextBox();
final TextBox tb2 = new TextBox();
final TextBox tb3 = new TextBox();
final Button addbtn = new Button("Add");
addbtn.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
int v1 = Integer.parseInt(tb1.getText());
int v2 = Integer.parseInt(tb2.getText());
int v3 = v1 + v2;
tb3.setText(Integer.toString(v3));
}
});
final Grid addgrd = new Grid(4, 2);
addgrd.setWidget(0, 0, new InlineLabel("First number: "));
addgrd.setWidget(0, 1, tb1);
addgrd.setWidget(1, 0, new InlineLabel("Second number: "));
addgrd.setWidget(1, 1, tb2);
addgrd.setWidget(2, 0, new InlineLabel("Result number: "));
addgrd.setWidget(2, 1, tb3);
addgrd.setWidget(3, 0, addbtn);
final RichTextArea rta = new RichTextArea();
final Button bldbtn = new Button("B");
bldbtn.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
rta.getFormatter().toggleBold();
}
});
final Button itbtn = new Button("I");
itbtn.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
rta.getFormatter().toggleItalic();
}
});
final FlowPanel flowp = new FlowPanel();
flowp.add(new ScrollPanel(rta));
flowp.add(bldbtn);
flowp.add(itbtn);
final TabPanel tabp = new TabPanel();
tabp.add(addgrd, "Add");
tabp.add(flowp, "Edit");
tabp.selectTab(0);
RootPanel.get("content").add(tabp);
}
}
Conceptually that is very close to a Swing app.
Arne