プロが教えるわが家の防犯対策術!

getText()でテキストフィールドから文字列を読み込ませているのですが、文字列を返すのはわかるのですが、テキストフィールドに何も書かないときは何を返すのでしょう?

A 回答 (5件)

↑は "" が返ってます。



"" (String型の空文字列)

null
の違いはわかりますね。
釈迦に説法だったかもしれませんが・・
一応、補足しました。

以上
    • good
    • 0

nullではないですよ



実際にコードを書いて実行してみました。
以下のコードを実行してボタンを
押下してみてください。

起動時の一番最初も、含めて
テキストフィールドが空の時には


nullではない
[]

と表示されます。

もしnullが返るのであれば、

nullである
[null]

と表示されると思います。



確認に使った以下ソースコードを貼り付けます


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

class Test extends JFrame {

private JTextField tf = new JTextField();
private JButton bt = new JButton("コンソール表示を確認せよ");

public Test() {
this.getContentPane().setLayout(null);
tf.setBounds(new Rectangle(10, 10, 100, 20));
bt.setBounds(new Rectangle(10, 50, 100, 20));
bt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
String text = tf.getText();
if( text == null ) {
System.out.println("nullである");
} else {
System.out.println("nullではない");
}
System.out.println("[" + text + "]");
}
});

this.getContentPane().add( tf );
this.getContentPane().add( bt );
this.setSize(500, 400);
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.setVisible(true);
}

public static void main(String[] args) {
Test t = new Test();
}
}
    • good
    • 0

getText()ってSwingのJTextComponentのやつでしょうか?


だとするとこれを継承したクラス、例えばJTextFieldの場合はコンストラクタの解説を見る限り、nullが初期値です。

恐らく他のJTextComponentを継承したクラスも同じだと思います。

詳細は#1の方が提示されているJDK APIの参考URLを見てください。
    • good
    • 0

ごめんなさい。

調査不足かもしれませんが・・・
getText()メソッドってJDKに含まれるObjectの中のメソッドですか?
それとも、ユーザー作成メソッドですか?
もしユーザー作成メソッドであれば、作成したときのデフォルトが返されるのだと思いますが。

コンナ感じですよね?
public class AAAA{
String aaa=null; //----(1)
public String getText(){
return aaa;
}
}

(1)でブランクにしていたらブランクが返されるし
(1)でnull(例のように)にしていたらnullがかえされますよね?
    • good
    • 0

nullだと思いますが。


参考URLにあげたAPIはご覧になりました?

参考URL:http://java.sun.com/products/jdk/1.2/ja/docs/ja/ …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!