0

Javaアプレットで特定のイベントが発生したときに関数を呼び出すにはどうすればよいですか?

私のJavascriptには、常に空の値を返す次のコードがあります。

$(function () {
    alert(document.applets[0].returnClientId());
});

特定のメソッドが実行されたときに、このアラートを呼び出す必要があります。具体的には、Javaアプレットに存在するidentifyというメソッドです。

私のUtil.classに存在するidentifyメソッドは、JAppletから拡張されていません。私のFormMain.classはJAppletから拡張されており、このUtil.classからいくつかのメソッド(identifyメソッドを含む)を呼び出します。

更新:私のJavaコード

public String getClientid() {
    return clientid;
}

public void setClientid(String clientid) {
    this.clientid = clientid;
}

public String returnClientId() {
    return getClientid();
}

public void identify() {
    try {
        fingerprintSDK.prepareForIdentification(this.template);

        ResultSet rs = identifyStmt.executeQuery();

        while (rs.next()) {         
            byte[] templateBuffer = rs.getBytes("template");

            Template referenceTemplate = new Template(templateBuffer);

            boolean matched = fingerprintSDK.identify(referenceTemplate);

            if (matched) {
            // ui is my FormMain instance
                ui.showImage(GrFingerJava.getBiometricImage(template,
                        fingerprint, fingerprintSDK));

                ui.writeLog("Found. Client = "
                        + rs.getString("Name"));

                ui.setClienteid(rs.getString("Cliente_Id"));

                ui.disableTemplate();                   
                return;
            }
        }

        ui.writeLog("Not Found.");
        ui.enableTemplate();
    } catch (SQLException e) {

        ui.writeLog(e.getMessage());
    } catch (GrFingerJavaException e) {
        ui.writeLog(e.getMessage());
    }
}

識別メソッドは、ユーザーが生体認証デバイスに指を置いたときに実行されます。

誰かが何か考えを持っていますか?

4

1 に答える 1

0

次のJS関数があるとします

function foo(client) {
    alert(client);
}

次のように変更Utils.javaします

public void identify() {
    // the rest of your code
    String id = rs.getString("Cliente_Id");
    ui.setClienteid(id);
    // call the Javascript function
    JSObject.getWindow(ui).eval(String.format("foo(%s)", id));
}

netscape.javascript.*パッケージを使用してコードをコンパイルするには、 $JAVA_HOME/jre/lib/plugin.jar. こちらをご覧ください

JavaScript を呼び出すために、Java コードは netscape.javascript.JSObject および netscape.javascript.JSException クラスを使用します。Java 2, Standard Edition バージョン 1.4 のリリース以降、これらのクラスは、Java Development Kit または Java Runtime Environment 内の jar ファイル jre/lib/plugin.jar で提供されます。これらの JavaScript クラスを参照する場合は、コンパイル クラスパスに plugin.jar を追加する必要があります。これは、Java IDE を使用している場合は、Java IDE を介して行うか、-classpath コマンドライン引数を Java コンパイラ javac に渡すことによって行うことができます。

実行時に、Java Plug-In は自動的にこれらのクラスをアプレットで使用できるようにするため、アプレットやその設定方法を変更する必要はありません。

于 2012-07-25T17:39:57.197 に答える