質問

ここで簡単なものが欠けていることを知っています。 ArrayListを移動する以外は、この宿題をすべて完了しました。これは電卓の元に戻す機能で、ArrayListからオブジェクトを取得および削除する必要があります。メソッドは次のとおりです。

public void actionPerformed(ActionEvent e)
     {
         Status state;
         state = new Status(operand1, operator, operand2, displayBox.getText());
         //ArrayList that I am coping into 
         listOfStates.add(state);
         super.actionPerformed(e);


         if(e.getSource() == undo )
         {
             Status previousState  = (Status) listOfStates.get(listOfStates.size()- 1); 
             displayBox.setText(" ");
              displayBox.setText(displayBox.getText()  +  previousState.op1); 
//This is where I need help at?  This calls a method of Status that only returns op1 IE 
//first operator

          }   
      }

クラス全体はこちら

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;
/**
 *
 * 
 * 
 */
public class BetterCalculator extends Calculator 

{   
    //attributes
    protected JButton undo; 
    protected ArrayList<Status> listOfStates; 
    private int numClicks = 0;





    public BetterCalculator()
    {
        super();
        listOfStates = new ArrayList<Status>();

    }


    public void createUserInterface3()
    {
        createUserInterface2();
        undo = new JButton("undo");
        jPanel.add(undo);
        undo.setBackground(Color.red);
       undo.setToolTipText("This is the undo feature");
       undo.addActionListener(this);

    }


     public void actionPerformed(ActionEvent e)
     {
         Status state;
         state = new Status(operand1, operator, operand2, displayBox.getText());
         //ArrayList that I am coping into 
         listOfStates.add(state);
         super.actionPerformed(e);


         if(e.getSource() == undo )
         {
             Status previousState  = (Status) listOfStates.get(listOfStates.size()- 1); 
             displayBox.setText(" ");
              displayBox.setText(displayBox.getText()  +  previousState.op1);

          }   
      }


    public static void main(String[] args)
    {

        BetterCalculator myCalc;
        myCalc = new BetterCalculator();
        myCalc.createUserInterface3();



    }
}

ステータスクラス

import java.util.*;
import java.awt.event.*;
import java.awt.*;
/**
 * Write a description of class Status here.
 * 
 * 
 *  This is a class to get the status for the undo feature
 */
public class Status 
{   
    //attributes
   protected double op1;
   protected char opt;
   protected double op2;
   protected String soFar;
    //constructors



    public Status(double o1, char op, double o2, String sf)
    {
        op1 = o1;
        opt = op;
        op2 = o2;
        soFar = sf;
    }



  //Methods
   public double getOp1()
    {
        return op1;
    }


     public char getOpt()
    {
        return opt;
    }


    public double getOp2()
    {
        return op2;
    }






}

ご協力ありがとうございます。 ArrayListからオブジェクトを引き出して削除する方法について、私はそれを見逃しています。

役に立ちましたか?

解決

コレクションからオブジェクトを取り出して削除する機能が必要な場合は、 Queue または Deque 代わりに、オブジェクトの削除元のニーズに依存します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top