الانتقال من خلال java arraylist مع زر التراجع
سؤال
أعلم أنني أفتقد شيئًا بسيطًا هنا. لقد حصلت على هذا الواجب المنزلي كل ذلك باستثناء الانتقال عبر قائمة 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 ثم إزالته.
لا تنتمي إلى StackOverflow