2016-06-16 5 views
0

実行中のJFrameからメソッドを実行するには、ユーザーの入力に応じてどのようにするのがベストですか?実行中のGUI環境でJavaでメソッドを実行するためのベストプラクティス

シナリオ バックグラウンドでは、JFrameを実行してバーコードスキャナを取り付けたいと考えています。このバーコードスキャナは、あらかじめ定義された(固定長ではない)バーコード(特殊文字のアルファ値)をスキャンしたり、*のような特殊文字を探したりしてアクションを開始します。

問題 バーコードの形式は次のとおりです。*名*姓*生年。私はJTextFieldの内容が変わるたびに "分析"メソッドを実行することを考えていましたが、そこでは必要な作業だと思います。

が、これは...バーコードスキャナからの文字は「一つずつ」に来て、これは13不要な「内容の確認」につながる *ジョン・ドウ* 1988 をスキャンされ、これがあるとしましょう私は立ち往生しています。私は私の解決策がある限り効率的になりたい

注:)ことができます。 はいソリューションは、ボタンまたは何らかの作用によって、分析」よりも、彼はスキャンした後、ユーザーが「彼の入力を確定」させることができたが入力 " - これは私が避けたいと思っており、それを完全に自動化(そして効率化)したいのです

あなたのアプローチやヒントはどうですか?

+0

テキストフィールドに入力したときにユーザーが入力するのはかなり簡単です。テキストフィールドにアクションリスナーを追加すると、ユーザーがEnterキーを押したときに起動します。 –

+0

えええええええええええええええええええええええええええええええええええええええええええええん:/私はただそれを避けたいと思っていました。ユーザーは不必要な遅延なしに別のバーコードをスキャンしています。:) –

+0

誰がフィールド、ソフトウェア、ソフトウェアの場合、どのようにアプリです。それがいつ完了したかを知っていたはずですか?あなたの質問はまだ非常に不明です。 –

答えて

2

SwingWorkerがこれに適しています。完全なレコードが利用可能な場合、結果のdoInBackground()およびpublish()のデータを読みます。 process()の実装では、イベント・ディスパッチ・スレッドでビュー・コンポーネントのモデルを安全に更新できます。この関連資料exampleに示すように、cancel()を入力して、必要に応じて作業者を再起動します。経験的に決められた時間の入力がない場合は、スキャン状態をリセットする必要があります。 300ミリ秒。

+1

ありがとうございました!これを探していた:-) –

関連する問題