Here are examples of Swing codes based on Swing Application Framework.
File org.chorem.jtimer.test.SafTest1.java:
public void SafTest1 extends SingleFrameApplication { public JButton helloWorldButton; public static void main(String[] args) { launch(SafTest1.class, args); } @Action public void helloWorld() { System.out.prinln("Hello world"); } @Override public void initialize() { helloWorldButton = new JButton(); helloWorldButton.setAction(getAction("helloWorld"); } @Override public void ready() { show(helloWorldButton); } }
File org/chorem/jtimer/test/resources/SafTest1.properties:
Application.title = Test 1 Application.id = saftest1 helloWorld.Action.text=Say hello helloWorld.Action.shortDescription=Click me to say hello
To translate previous example, in french for example, just create a properties file suffixed by the locale containing translated strings.
File org/chorem/jtimer/test/resources/SafTest1_fr.properties:
helloWorld.Action.text=Dit bonjour helloWorld.Action.shortDescription=Cliquer pour dire bonjour !
We can how bind some properties to swing elements. This bindings have to be set in action annotation, this properties concern all element bind on this action.
File org.chorem.jtimer.test.SafTest2.java:
public void SafTest2 extends SingleFrameApplication { public JButton helloWorldButton; public static void main(String[] args) { launch(SafTest1.class, args); } public boolean isActive() { return false; } @Action(enabledProperty="active") public void helloWorld() { System.out.prinln("Hello world"); } @Override public void initialize() { helloWorldButton = new JButton(); helloWorldButton.setAction(getAction("helloWorld"); } @Override public void ready() { show(helloWorldButton); } }