Tinkerman255:
私はJTextFieldのオブジェクトのためのコンテナクラスを作成するに取り組んでいたが、私は、テキストフィールド内のテキストを取得しようとするたびに、トラブルに実行し続けます。
class myTextField{
String defaultText;
String currentText = "";
JTextField field;
int xPos;
int yPos;
int xSize;
int ySize;
myTextField(JFrame frame, String newDefaultText, int newXPos, int newYPos, int newXSize, int newYSize){
defaultText = newDefaultText;
xPos = newXPos;
yPos = newYPos;
xSize = newXSize;
ySize = newYSize;
JTextField label = new JTextField(defaultText);
frame.add(label);
label.setBounds(xPos, yPos, xSize, ySize);
}
public void setText(String text) {
this.currentText = field.getText();
if(text == "") {
this.currentText = this.defaultText;
}
this.currentText = text;
}
public String getText() {
System.out.println(field.getText());
this.currentText = field.getText();
return this.currentText;
}
}
私はこのクラスののgetText()関数を使用するたびに、それは私に、このエラーを与えます:
Exception in thread "main" java.lang.NullPointerException
at Examples.myTextField.getText(Example_312.java:182)
at Examples.Example_312.updateFrame(Example_312.java:81)
at Examples.Example_312.main(Example_312.java:49)
残念ながら、そのエラーは非常に説明的ではない、と私は私のコードで間違って何が起こっているのトラブルの発見を抱えているそう。が、私は理由を知りません。「field.getText()」私は私が呼ぶとき、それは失敗しています知っています。誰かが私にそれを説明する、またはソリューションを提供することができれば、私はそれを本当に感謝します!
全おかげでガイ:
あなたにはmyTextField
、コンストラクタ私はあなたが初期化したいと仮定しJTextField field;
、インスタンス変数を代わりに作成したローカル変数をJTextField label = new JTextField(defaultText);
。
私はあなたが変えるべきと考えているJTextField label = new JTextField(defaultText);
と、あなたのコンストラクタで:
field = new JTextField(defaultText);
frame.add(field);
field.setBounds(xPos, yPos, xSize, ySize);
その後、病棟であなたはゲッターを呼び出す場合はgetText()
、あなたがどんなに直面することはありませんがNullPointerException
。