Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

テキストフィールドのNULL

テキストフィールドでエンターキーを押したとき1以上で背景を青色、0以下で赤色、空の場合に背景を黄色にしたいのです。nullかどうかの判断の方法がわかりません。教えてください。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class Textbox extends Applet{

    TextField tf;
    public void init(){
        //テキストフィールドの作成
        add (tf= new TextField("",10));
        tf.addActionListener(new MyListener());
        
    }
        //Enterが押された時のイベント
        class MyListener implements ActionListener{
        public void actionPerformed(ActionEvent e){
            TextField t=(TextField)e.getSource();
            t.getText();
            
            //テキストの文字を数値化
            Integer obj =Integer.valueOf
              (t.getText());
            int a =obj.intValue();
            //テキストの中身で背景色を変える   
            if (a>0)
               tf.setBackground(Color.blue);
            else
               tf.setBackground(Color.red);
            //テキストフィールドの中身がnullか判断 
            if (t.getText()==null)
               tf.setBackground(Color.yellow);
           
        }
    }
}

5

回答

6743

閲覧

5件の回答

評価

0

空=nullという考え方は捨てましょう。空文字列があるのですから。
同様に、配列やコレクションも空を表すにはnullではなく、サイズが0の配列・コレクションを使用しましょう。
そうすることで、コーディングが単純になります。

評価

0

if (t.getText()==null)

t.getText()==null || t.getText().length == 0
にかえましょう。

多分、これで大丈夫だと思いますよ。

NULLか空文字かの判断です。
忘れずに、空文字かどうかの
チェックをしましょう

評価

0

JavaSE6だと、
if (t.getText() == null || t.getText().isEmpty())
でも可。
Commons LangのStringUtilsを使うともっと楽

評価

0

t.getText()==null || t.getText().length == 0
を使い成功しました。ありがとうございました!!

評価

0

getText()はnullの場合、NullPointerExceptionの例外処理になるのでは?

だから、getText()==nullは意味ないと思います。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。