0

次のクラスを持つスイング アプリケーションがあります。 ControllerGUI

: メインフォームをロードします。
Date: 数値を入力から日付形式に変換するために使用し
ます 。 name、gender、dob など Store: Employee[] リストの配列を保持します。


名前、給与、役職などをストアから JTextFields に表示し、ユーザーが次と前のボタンでエントリを参照できるようにする displayInformation JPanel があります。ただし、最初に機能させようとすると NullPointerException が発生します。

MainForm に新しい Store を追加します

Store testStore = new Store(100);

配列内の要素を次のように異なる JTextField に出力したい:

showName.setText(testStore.list[listIndex].name);

(listIndex は私が開始した int です) しかし、そこから NullPointerException を取得しています。取得したいものを .name または .salary から外すとエラーはなくなりますが、とにかくコードに意味がありません。

ここで何か助けていただければ幸いです。

 public class Store implements Serializable {
    private static int MAXSIZE; // holds the size of the array
    private static int count; // keeps count of number of persons stored in
                                // array

    Employee[] list; // array for storing person objects

    public Store(int size) {
        list = new Employee[size];
        MAXSIZE = size;
        count = 0;
    }
4

1 に答える 1

3

これは、次の理由で発生します。

testStore.list[listIndex]

無効です。

以下を使用できます。

showName.setText(testStore.list[listIndex] == null ? null : testStore.list[listIndex].name);

実際には、 Person クラスでセッターとゲッターを使用してから、次を使用する方がはるかに優れたアプローチです。

testStore.list[listIndex].getName()

個人の名前を取得します。

于 2013-02-06T15:48:09.470 に答える