Example Java Call In Using Swing.

Under some circumstances your Java programs may need to call into your Uniface application. The easiest example of this is when a Uniface form component activates a Java Swing program. Swing screens are non-modal, so when the user has finished using it, or has selected a value from it, it will be necessary to activate an operation in Uniface to pass the result back:

The Java Swing program may be executed using either the activate or sql proc instructions.

To call Uniface from Java you must:

The source code for the MHU class is supplied with the UD5 driver. Compile it using your JDK:

javac MHU.java

Here is the example Java Swing class: HELLOSWING

Here is our example Java

//v 1.3
import javax.swing.*;    
import java.awt.*;
import java.awt.event.*;

public class HELLOSWING {
static JFrame frame;
    public static void main(String[] args) {
	HELLOSWING.EXEC();
    }
    public static int QUIT() {
      MHU mhu = new MHU();
      int res=mhu.UACTIVATE("TEST_JAVA","CLOSING_SWING","Bye");
      frame.setVisible(false);
      frame.dispose();
      return 0;
    }
    public static void EXEC() {
        MHU mhu = new MHU();
        mhu.LOADLIBRARY("ud5");

        frame = new JFrame("HelloSwing");
        final JLabel label = new JLabel("Hello World");
        frame.getContentPane().add(label);
        frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

        frame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                int res=HELLOSWING.QUIT();
            }
        });

        frame.pack();
        frame.setVisible(true);
    }
}

Calling from SQL

This example shows how to call Java Swing using the sql proc statement :

sql "@return-type V","ud5"
sql "@static-method enable","ud5"
sql/print "HELLOSWING.EXEC","ud5"

Calling from ACTIVATE

This example shows how to call Java Swing using the activate proc statement :

activate "HELLOSWING".EXEC()

The ASN file contains this redirection:

[SERVICES_EXEC]
HELLOSWING  $MW1:HelloSwing

The Signature definition of HelloSwing is:

The CLOSING_SWING Operation

Our example Java Swing application is started from a Uniface Form Component called TEST_JAVA which has an operation named CLOSING_SWING defined:

operation CLOSING_SWING
PARAMS
  STRING TEST:IN
ENDPARAMS
PUTMESS "%%TEST"
swingres.dummy="Closed"
PUTMESS "This Worked"
macro "^next^field"
end
;

The form has a button painted which starts the Swing application, and a field named SWINGRES which contains the status indicator. NOTE: the macro in this example is to ensure the screen is correctly updated.

$Revision: 1.6 $ $Date: 2003/07/16 00:34:48 $[go to top]