0

3 番目のコード サンプルにエラーが含まれています - 解決方法は?

次のコードでは、"generator" というメソッドを生成しています。このメソッドは、パラメータとして JTextField と JLabel を受け取ります。

個々の JPanel を生成し、それらを別の JPanel (ボーダー「Vermier」を持つもの) に追加します。結果は次のようになります (赤でマーク)。

http://imageshack.us/photo/my-images/853/stammdateneraffsenguibe.png/

ここでは、JTextFields をフィールドとしてインスタンス化しています。

private JTextField txtplzvermieter;
private JTextField txtemailvermieter;
private JTextField txtgeburtsdatumvermieter;
private JTextField txthandyvermieter;
private JTextField txtidvermieter;
private JTextField txtnamevermieter;
private JTextField txtortvermieter;
private JTextField txtstrassevermieter;
private JTextField txttelefonvermieter;
private JTextField txtvornamevermieter;

ここで、上で説明したメソッドを呼び出しています

        public  void vermieterPanel(JPanel verPanel){
         verPanel.add(generator( "ID", txtidvermieter ));
       verPanel.add(generator("Name", txtnamevermieter ));
       verPanel.add(generator( "Vorname", txtvornamevermieter ));
       verPanel.add(generator( "Straße", txtstrassevermieter ));
       verPanel.add(generator("PLZ", txtplzvermieter ));
       verPanel.add(generator( "Ort", txtortvermieter ));
       verPanel.add(generator( "Geburtsdatum", txtgeburtsdatumvermieter ));
       verPanel.add(generator( "Telefon", txttelefonvermieter ));
       verPanel.add(generator("Handy", txthandyvermieter ));
       verPanel.add(generator( "E-Mail", txtemailvermieter ));

エラーを含むメソッドジェネレーターは次のとおりです。

      public JPanel generator(String lableText, JTextField s){   // generiert ein Panel mit einer Zeile aus lable + TextFeld

     JPanel gens = new JPanel();
     JLabel lable = new JLabel(lableText);
     lable.setPreferredSize(new Dimension(100,25));

     s = new JTextField();
     s.setPreferredSize(new Dimension(200, 25));


    gens.add(lable);
    gens.add(s);
    return gens;
  }

.getText();ここで新しい JTextField-Object への参照を作成したため、後で TeftFields で参照を取得できませんs = new JTextField();

オブジェクトにアクセスするために行を削除すると、Null-Pointer 例外が発生します。

私は何を間違っていますか?

4

3 に答える 3

0

元の値が作成されることはありません。これを行う必要があります

private JTextField txtplzvermieter = new JTextField();

それらのそれぞれのために。ただし、メソッド内ではなく、メソッドの外にある必要があります。

于 2012-04-07T21:51:27.933 に答える
0

Javaでは、オブジェクトを参照として渡すことはできません。これは、 Java
言語 を作成する目的であり、最小限のメモリ管理 でした。オブジェクトをパラメーターとして渡すと、オブジェクトの参照のコピーが渡さ れるため、すべての変更が行われます。キーワードを使用して新しいオブジェクトに割り当てる場合を除いて、オブジェクトの は反映されます。ここでは、オブジェクトのグラブが失われますJFieldをグローバル として作成し、パラメーターのセクションを介してメソッドに渡さないでください.

fieldnewclass field

于 2012-04-07T21:55:51.690 に答える
0

もちろん、初期化する前に JTextield を渡しているため、例外が発生します!!
宣言するだけで
、パラメーターとして渡す前に new キーワードで初期化します。

于 2012-04-07T22:02:31.640 に答える