4

指紋スキャナーを使用できるようにする JNI とインターフェースしています。私が書いたコードは、JNI によって解析されたスキャンされた ByteBuffer を受け取り、それを BufferedImage に変換して保存します。

私が理解できないのは、GUI の jlabel アイコンが更新される前に、スキャン スレッドが終了するのを待つ方法です。これを行う最も簡単な方法は何ですか?

他に何を追加する必要がありますか?

編集:

//Scanner class
Thread thread = new Thread() {
        public void run() {
            // [...] get ByteBuffer and Create Image code
            try {
                File out = new File("C:\\Users\\Desktop\\print.png");
                ImageIO.write(padded, "png", out);
                // [???] set flag here
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    };
thread.start();
return true;

//Gui class
private void btnScanPrintActionPerformed(java.awt.event.ActionEvent evt) {
    Scanner scanPrint = new Scanner();
    boolean x = scanPrint.initDevice();
    //Wait for the scanning thread to finish the Update the jLabel here to show
    //the fingerprint
} 
4

2 に答える 2

0

スキャン スレッドの最後にSwingUtilities.invokeLater()、GUI をスキャンの結果で更新するために使用します。

于 2013-07-09T12:35:24.347 に答える