0

私は Netbeans で GUI を構築しています - これは単純な小さなアプリケーション - コンバーター プログラム用です。基本的に、ユーザーは変換したいものをテキスト フィールドに入力し、いくつかのラジオ ボタンから変換を選択し (lbs から kg など)、[変換] をクリックします。

問題は、「変換」ボタンとラジオボタンを次のように動作させたいということです。

  1. プログラムが読み込まれると、ラジオ ボタンと [変換] ボタンが無効になります。
  2. ユーザーがテキスト フィールドに数字 (および数字のみ) を入力すると、ラジオ ボタンと [変換] ボタンが有効になります。
  3. 入力した内容を削除すると、別の番号を入力するまですべてが再び無効になります。

各コンポーネントのプロパティで「有効」ボックスのチェックを外すことで、ラジオボタンと「変換」ボタンを無効にすることができました。また、単純な if ステートメントと keyTyped イベントを使用して、次のように有効/無効にすることもできました。

private void txtUsrInputKeyTyped(java.awt.event.KeyEvent evt) 
{                                     
    if (!txtUsrInput.getText().equals(""))
    {
        btnCalculate.setEnabled(true);
    }
    else
    {
        btnCalculate.setEnabled(false);            
    }
}

コードを拡張して、ユーザーが誤って文字または記号をテキスト フィールドに入力した場合 (数値のみを入力する必要があることを知っているのに、なぜそうするのか聞かないでください)、プログラムが無視するようにします。入力した内容、またはエラーを表示します。これに対する例外は、もちろんピリオド (.) を入力することです。これは、10 進数を示したい場合があるためです。

これを行う方法について何か考えはありますか?私が書いたことが理にかなっていることを願っています!

4

2 に答える 2

0

あなたのGUI

スイングをまだ知らない場合は、それを学びましょう。すべてのコンポーネントがどのように機能するかを知ることは、開発者にとって常に大きな利点であり、何か問題が発生した場合は、それを修正する方法を正確に知ることができます (または、少なくともより良いチャンスがあります)。始めるための助けとして、このものを見てください。

小数のチェック

これは正規表現の仕事のように見えます。できることは、数字[0-9]とピリオドを指定することです\.。次に、数値または小数が一定の回数入力されていることを確認します。ただし、ここで注意すべき重要なことは、ユーザーが入力できる小数点は1 つだけであり、最終的には次のようになるということです。

([0-9]+(\.[0-9]+))

9これにより、 、0.9、などの値が許可されます1.9302。のような値は許可されません.901。それを許可したい場合は、最初+*.:を単純に交換します。

([0-9]*(\.[0-9]+))

それを使用する

テキスト ボックスには文字列が含まれているため、正規表現と比較できます。単に:

if(textBox1.getText().matches("([0-9]+(\.[0-9]+))")) {
    // Run some code in here.
}
于 2013-05-31T22:35:30.427 に答える
0

GUI が単純な場合は、GUI ビルダーを使用しないで、最初からコーディングします。より難しい道をたどると、レイアウト、アクションリスナーなどについて学びます...

于 2013-05-31T22:36:31.237 に答える