5

私はvaadin(およびJava)に非常に慣れていません。

私は次のようなSQLcontainerを持つテーブルを持っています:

public class ProjectTable extends Table {
      public ProjectTable(final DocumentmanagerApplication app) {
          setSizeFull();
          setContainerDataSource(app.getDbHelp().getProjectContainer());
          setImmediate(true);

          commit();
          setSelectable(true);

      }
    }

テーブルにデータを入力するためのボタンと TextField があります

public void buttonClick(ClickEvent event)
    {
        SQLContainer cont = h.getAssetContainer();
        String dataResult = tf.getValue().toString(); // TEXT FIELD 
        System.out.println(dataResult);






        Object itemId = cont.addItem(); // cont is the container
        **cont.getContainerProperty(itemId , "id").setValue(dataResult);      // BUG IS HERE !!! **  


try {
            cont.commit();
        } catch (UnsupportedOperationException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

何をしても「ヌルポインタ例外」が発生し続けます。行 **cont.getContainerProperty(itemId , "id").setValue(dataResult);

私は何か間違っていますか?ヌルポインタとは?

何か不明な点がありましたらお知らせください。

助けてください、よろしくお願いします。

4

2 に答える 2

4

ところで、Vaadin テーブルがあり、それにフィルターを適用した場合は、前にそれを削除する必要があります。そうでない場合は、おそらく getContainerProperty(itemId, property) メソッドで null ポインター例外が発生します。

于 2013-10-08T01:20:09.450 に答える
2

この式は次を返しますnull

cont.getContainerProperty(itemId , "id")

そして、 でメソッドを呼び出そうとしますnull。これにより、NullPointerException. コンテナを呼び出すときに、コンテナがキーにnull以外の値を提供しない理由を見てください。

于 2012-08-16T05:44:03.380 に答える