0

個人インスタンスのレコードを保存するストアを作成しました。CLI から従業員を追加すると機能し、ストアがインクリメントされます。デバッグにスイングと CLI を使用すると、新しいレコードが表示されますが、インクリメントは行われません。

submit.addActionListener(new ActionListener() 
    {
        public void actionPerformed(ActionEvent e)
        {
            Store recordStore;
            recordStore = new Store(1);

                // here add the submitting text
                Employee em = new Employee("mn",'M', new Date(18,12,1991), "025", new Date(2,5,2009));

                if (!Store.isFull())
                    {

                    recordStore.add(em);
                    recordStore.displayAll();
                    System.out.println("Current size of store is " + Store.getCount());
                    }

                else
                {   JOptionPane.showMessageDialog(null, "The store seems to be full, please save it, and create a new one!"); }

店舗追加機能

    public void add(Person p)
{
    // person p is added to array

    list[count++] = p;
}
4

2 に答える 2

3

あなたの問題は、ActionListenerコードが実行されるたびに新しいStoreインスタンスを作成していることだと思います。おそらく、クラスでStoreインスタンスを一度作成し、それをActionListenerに追加したいと思うでしょう。

于 2013-01-26T02:28:55.907 に答える
2
public void add(Person p)
{
  // person p is added to array
  list[count++] = p;
}

上記の関数がStoreクラスで定義されている場合、新しいインスタンスを初期化しています

Store recordStore;
recordStore = new Store(1);

毎回。したがって、リストの数は常に1になります。したがって、Hovercraft Full Of Eels提案されているように、それをActionListenerクラスの外に移動し、それに応じてコードを変更してください。

または、追加しstatic countたカウントを格納する a を使用records of person instancesします。

于 2013-01-26T02:48:26.540 に答える