Warum ist dieser Text-Panel gibt mir eine Speicheradresse?
Frage
Dies ist eine Rückgängig-Funktion Taste auf einem Rechner, den ich schreibe. Rückgängig ist die Taste Status eine Klasse ist, dass mein Status hält. listOfStates ist eine Arraylist von Status. displaybox ist ein Gegenstand der JTextFeild. Was ich nicht unter Stand ist, dass, wenn ich PreviousState im Textfeld angezeigt wird ich so etwas bekommen: Status @ 11dc088. Ich weiß, ich bin hier fehlt etwas Gießen. Vielen Dank für jede Hilfe.
if(e.getSource() == undo)
{
Status previousState = (Status) listOfStates.get(listOfStates.size()- 1);
displayBox.setText(" ");
displayBox.setText(displayBox.getText() + previousState);
System.out.println(previousState);
}
Lösung
Status ist eine benutzerdefinierte Klasse und Sie kein toString () Methode implementieren, so dass Sie das Objekt Standard-Methode toString () erhalten.
Überschreiben Sie die Methode toString () in der Statusklasse eine meaningfull String zurück.
Oder verwenden Sie eine Methode aus der Klasse wie previousState.getStatus () die entsprechende Eigenschaft von Ihrer Klasse zu verwenden.