gpt4 book ai didi

java - 使用撤消按钮在 Java ArrayList 中移动

转载 作者:行者123 更新时间:2023-12-01 16:09:20 25 4
gpt4 key购买 nike

我知道我在这里遗漏了一些简单的东西。除了移动 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 中取出然后将其删除。

最佳答案

如果您想要的是从集合中取出对象并将其删除的功能,您可能需要考虑使用 QueueDeque相反,取决于您想要从哪一端删除对象的需要。

关于java - 使用撤消按钮在 Java ArrayList 中移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1806251/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com