2016-12-12 5 views
0

私はこのやり方を試しましたが、どれもうまくいきませんでした。まず説明:テーブル(GridViewコントロール)のユーザーが編集を終了した後のTextFieldリスナー? JavaFX

画像:私は別名表を持って

enter image description here

  1. (GridViewコントロールは、具体的には)私がテキストフィールドに入力します。
  2. 右上の三角形は編集できますが、下の三角形は編集できません。
  3. ミラーリングされたフィールドgetは1 /(1-9)の値を返します
  4. また、ユーザーは1 /(1-9)を書き込むことができ、ミラーリングされたフィールドgetは値1を書き込みます-9(入力が1/9か実際の数値、0.1111であるかどうかは関係ありません)

3番目の点は簡単ですが、私はchangeListenerを使って両方のテキストフィールドを取得し、値を変更しました。 (シンプル正規表現:^ [1-9])。これはすでに完了しています。

私は1で始まり、1 /そして1 /(2-9)で始まる正規表現を使ってif文を作成しようとしましたが、多くのエラーがあります(=私は説明を覚えていない)、それはあまりにも複雑で、後で問題を引き起こす。私はまた、ユーザが小数点以下を入力できるようにしました0.1111 = 9同じ問題。

ユーザーが終了したとき(入力全体)に開始できるリスナーがありますか?または、どのように問題に取り組んでいますか?

(排他的ではなく)一般的な
+0

質問はすべきではありません。ユーザーが編集を終了したかどうかを知るために** **?その後、彼が書いたものに対処するのは簡単になります。 –

+0

まさに、彼が終わる時を知るオプションがありますか?またはこの問題を解決する方法に関する他のアイデア。 –

+0

遅延を使用するか、入力した文字の間に間隔を置くことができます。遅延が経過するとメソッドが呼び出されます。 –

答えて

1

これは動作するはずです:

field.addActionListener(new ActionListener(){ 
    public void actionPerformed(ActionEvent e) { 
     // what happens after Enter is pressed 
    } 
}); 
1

つの解決策は以下のとおりです。

1)フィールドの編集が完了すると、ユーザーを押して/リターンを入力してもらいます。そのキー押下に基づいて検証機能を実行することができます。 (see here

2)フィールドがフォーカスを失ったときに検証を実行します。 (see here

+0

最初に2)を試しますが、テキストフィールドのフォーカスリスナーはありません(javafxで)。しかし、このようにすることができます、私は思う:http://stackoverflow.com/questions/16549296/how-perform-task-on-javafx-textfield-at-onfocus-and-outfocus –

+0

ああ、良いコール、私はjavafxを忘れてしまった部! – Rabbit

関連する問題