movendo -se através do Java Arraylist com um botão de desfazer
Pergunta
Eu sei que estou perdendo algo simples aqui. Eu fiz esse dever de casa, exceto por me mover através da minha lista de Array. Este é um recurso de desfazer de uma calculadora que eu preciso puxar e remover um objeto de um ArrayList. Aqui está o método:
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
}
}
A aula inteira está aqui
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();
}
}
Classe de status
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;
}
}
Obrigado por qualquer ajuda. Eu sei que estou perdendo como puxar o objeto para fora do Arraylist e depois removê -lo.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow