这是我正在编写的计算器上的撤消功能按钮。 undo是按钮Status是一个保存我状态的类。 listOfStates是Status的ArrayList。 displayBox是JTextFeild的一个对象。我没有理解的是,当我在文本框中显示previousState时,我会得到类似于:Status @ 11dc088。我知道我在这里错过了什么。谢谢你的帮助。

if(e.getSource() == undo)
             {
                 Status previousState  = (Status) listOfStates.get(listOfStates.size()- 1);

                 displayBox.setText(" ");
                 displayBox.setText(displayBox.getText()  + previousState);
                 System.out.println(previousState);
                }
有帮助吗?

解决方案

Status是一个自定义类,你没有实现toString()方法,所以你得到了Object默认的toString()方法。

重写Status类中的toString()方法以返回有意义的String。

或者,使用类中的方法(如previousState.getStatus())来使用类中的相应属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top