Objekt (Map) in Textfeld ausgeben

Status
Nicht offen für weitere Antworten.

Dodo2110

Mitglied
Guten Tag,

kurz zur Situation:

Ein Lagerverwaltungsprogramm soll mit einer rudimentären GUI ausgestattet werden. Das Originalprogramm ist lauffähig, lediglich ein Textfeld, Buttons etc sollen implementiert werden.

Konkretes Problem:

Es exisitiert eine Klasse "Lager", die einen Konstruktor enthält, der wiederum ein Map-Objekt für den Lagerbestand erzeugt. Die "keys" sind in diesem Falle Produktbezeichnungen und die "values" der aktuelle Lagerbestand.

Ich möchte nun den Lagerbestand in der von mir definierten TextArea ausgeben lassen.

Innerhalb der Klasse "Lager" existiert bereits eine Methode toString:

***Auszug***
[Java]
public String toString() //Lager als String ausgeben
{
for(Iterator i=lager.keySet().iterator(); i.hasNext(); )
for(Iterator j=lager.values().iterator(); j.hasNext(); )
System.out.println(i.next()+"\t\t"+j.next());
return new String("Liste Ende");
}
[/Java]

Nun war es angedacht bei Betätigen eines Buttons den Lagerbestand mittels der toString-Methode innerhalb des Textfensters anzeigen zu lassen und zwar wie folgt:


***Auszug Hauptprogramm***
[Java]
class Btn3 implements ActionListener // ActionListener Interface
{public void actionPerformed(ActionEvent e) //wenn ActionEvent von btn3 kommt
{
txa.append(System.out.println(""+Lag1));} //Textausgabe in Textfeld
}
[/Java]


Dieses funktioniert leider nicht wie gedacht, eine Kompilierung ist so nicht möglich. Gibt es noch andere Möglichkeiten?

Vielen Dank im Voraus!

Mit freundlichen Grüßen,
Dodo

Edit: Wäre es unter Umständen hilfreich die Ausgabe der Methode toString der Klasse "lager" zunächst in einem String zu speichern und dann DIESEN String ausgeben zu lassen? Wenn ja, wie wird das am besten und einfachsten bewerkstelligt?
 
Zuletzt bearbeitet:

Verjigorm

Top Contributor
Code:
txa.append(System.out.println(""+Lag1));}
Das ist doch Blödsinn

System.out schreibt doch was auf die Konsole und gibt keinen String zurück

Richtig:
Code:
txa.append(Lag1.toString());

Wobei es fraglich ist, ob Lag1 bekannt ist
 
Zuletzt bearbeitet:

MathiasBauer

Bekanntes Mitglied
Ich würde es so in dieser Art lösen:

Java:
public String readMap(Map mp) {
    String returnValue ="";
    Iterator it = mp.entrySet().iterator();
    while (it.hasNext()) {
        Map.Entry pairs = (Map.Entry)it.next();
        returnValue = pairs.getKey() + " = " + pairs.getValue();
    }
    return returnValue;
}

Diese Methode z.B. dann so aufrufen:
Java:
txa.append(readMap(lager));
 
Zuletzt bearbeitet:

Dodo2110

Mitglied
Zunächst vielen Dank für die Antworten!

@Verjigorm:
Klar, war mein Fehler. Hatte mir das wohl etwas zu simpel vorgestellt. Zu deinem Lösungsansatz: Selbstverständlich ist Lag1 NICHT bekannt, wie sollte es auch anders sein. Können die Daten irgendwie übergeben werden?

@MathiasBauer:
Es ergibt sich bis jetzt noch ein Problem mit dem Datentyp, da das im Textfeld anzuzeigende Objekt vom Typ "Lager" ist, und keine Map. Bleibe dran.


Vereinfacht kann man doch sagen, dass die Konsolenanzeige auf der Textarea zur Anzeige gebracht werden soll, denn diese funktioniert schon einwandfrei und sieht so aus:
-------Neuer Lagerbestand-------
Federn 0005 Hersteller1 7
Muttern 0002 Hersteller2 15
Passstifte 0003 Hersteller3 10
Schrauben 0001 Hersteller5 4
U-Scheiben 0004 Hersteller6 11
Liste Ende
-----------------------
-----------------------

Könnte man zum Beispiel die toString-Methode in der Klasse "Lager" streamen, temporär speichern und dann in der textarea anzeigen lassen?

Gruß,
Dodo
 
Zuletzt bearbeitet:

Verjigorm

Top Contributor
Zunächst vielen Dank für die Antworten!

@Verjigorm:
Klar, war mein Fehler. Hatte mir das wohl etwas zu simpel vorgestellt. Zu deinem Lösungsansatz: Selbstverständlich ist Lag1 NICHT bekannt, wie sollte es auch anders sein. Können die Daten irgendwie übergeben werden?

Eine Lösung wäre:
Benutzt den Actionlistener als Anonyme Klasse und mach keine "eigene Klasse" draus
 

Dodo2110

Mitglied
Was willst Du da streamen? Anstelle der Ausgabe auf Konsole musst Du das ganze einfach in einen String stecken und den dann zurückgeben.

Genau da liegt das Problem. Zur Zeit ist es so, dass die Ergebnisse der Iterationen über den Keys und Values innerhalb der toString-Methode über die Konsole ausgegeben werden:

***Auszug***
[Java]
public String toString() //Lager als String ausgeben
{
for(Iterator i=lager.keySet().iterator(); i.hasNext(); )
for(Iterator j=lager.values().iterator(); j.hasNext(); )
System.out.println(i.next()+"\t\t"+j.next());
return new String("Liste Ende");
}
[/Java]

Wenn es mir gelingt die Ergebnisse der Iterationen als String zurückzugeben ist das Problem gelöst.


EDIT:
Ich bin der Lösung mittlerweile schon ziemlich nahe. Hier der Ansatz:
Java:
public String toString()														//Lager als String ausgeben					
{
	String stack1 = null;
	String stack2 = null;
	for(Iterator i=lager.keySet().iterator(); i.hasNext();)
	stack1 = (i.next()+"");
	for(Iterator j=lager.values().iterator(); j.hasNext();)
	stack2 = (j.next()+"\n");	
	return new String(stack1+"\t\t"+stack2);
}

Allerdings wird hier nur die letzte Zeile zurückgegeben:

Ausgabe Konsole:

-------Neuer Lagerbestand-------
Federn 0005 HerstellerXYZ 7

Ausgabe Textarea:

Federn 0005 HerstellerXYZ 7

Wo könnte der Fehler liegen (außer zwischen den Ohren)?

Vielen Dank im Voraus,
Dodo
 
S

SlaterB

Gast
stack1 = (i.next()+"");
->

stack1 += (i.next()+"");


allerdings kommt dann am Anfang "null" rein, also mit "" anfangen,
das + "" dürfte dann nicht mehr nötig sein

Strings in einer Schleife zu addieren ist überhaupt potentiell sehr langsam, lieber mit StringBuilder arbeiten
 

Dodo2110

Mitglied
Vielen Dank,

das Problem ist gelöst! :applaus:

Ich musste noch ziemlich viel in der toString Methode rumpfuschen, damit die Textausgabe einigermaßen ansehnlich wird. Die beiden StingTokenizer "zerhacken" die beiden strings, um die Fragmente dann in der while-Schleife wieder zusammenzuführen:

Java:
public String toString()														//Lager als String ausgeben					
{
	int h;
	String stack1 = ("");
	String stack2 = ("");
	String stack3 = ("");
	String stack4 = ("");
	String stack5 = ("");
	for(Iterator i=lager.keySet().iterator(); i.hasNext();)
	stack1 += (i.next()+"\n");
	for(Iterator j=lager.values().iterator(); j.hasNext();)
	stack2 += (j.next()+"\n");	
	
	StringTokenizer st1 = new StringTokenizer (stack1, "\n");
    StringTokenizer st2 = new StringTokenizer (stack2, "\n");
	while (st1.hasMoreTokens()) 
    {
        stack3 = st1.nextToken();
    	stack4 = st2.nextToken();
    	stack5 += (stack3+"\t"+stack4+"\n");
    }
    
	return new String("*****Aktueller Lagerbestand*****\n"+stack5+"\n\n\n\n");
}

Ausgabe in der Textarea:

*****Aktueller Lagerbestand*****
U-Scheiben 0004 Hersteller1 11
Muttern 0002 Hersteller2 15
Schrauben 0001 Hersteller3 4
Passstifte 0003 Hersteller4 10
Federn 0005 Hersteller5 7


Der Lösungsweg wird einigen hier sicher die Haare zu Berge stehen lassen, aber es ist zweckmäßig :D

Vielen Dank nochmals für die Hilfe!

Gruß,
Dodo
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
B mit maus Objekt bewegen AWT, Swing, JavaFX & SWT 3
U Was genau ist das Objekt einer affinentransformation? AWT, Swing, JavaFX & SWT 1
U Was genau ist ein Shape-Objekt? AWT, Swing, JavaFX & SWT 3
DonBronson Objekt bewegen (Mausposition) AWT, Swing, JavaFX & SWT 3
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
DonBronson Gezeichnetes Objekt verschwindet nachdem erneut gezeichnet wird AWT, Swing, JavaFX & SWT 8
U Was ist ein Shape, also klar ein Objekt, aber was ist damit gemeint (Graphics2d)? Und was sidn affinetransformationen AWT, Swing, JavaFX & SWT 1
Jose05 zugreifen auf ein Objekt eines GridPanes AWT, Swing, JavaFX & SWT 0
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
C Objekt an paintComponent weitergeben AWT, Swing, JavaFX & SWT 1
M Swing Objekt Array in GUI ausgeben AWT, Swing, JavaFX & SWT 1
A Objekt von einem Window erstellen? AWT, Swing, JavaFX & SWT 8
F Java FX Von der Fxml Datei zum Objekt AWT, Swing, JavaFX & SWT 8
M Swing Durch Usereingabe neues Objekt AWT, Swing, JavaFX & SWT 2
K Color-Objekt erzeugen in CMYK AWT, Swing, JavaFX & SWT 2
T Frage zu GUI - Button soll Objekt erfassen AWT, Swing, JavaFX & SWT 2
A Swing Null Pointer Exception obwohl Objekt initialisiert AWT, Swing, JavaFX & SWT 21
J gezeichnetes Objekt anklicken AWT, Swing, JavaFX & SWT 10
thet1983 JavaFX TableView Objekt Daten anzeige AWT, Swing, JavaFX & SWT 2
Z Swing Variable eines Objekt aus Hashmap in JList anzeigen AWT, Swing, JavaFX & SWT 1
M Mouse Click Event ohne ein JComponent Objekt AWT, Swing, JavaFX & SWT 3
L JavaFX als eigenes Objekt AWT, Swing, JavaFX & SWT 3
M [JavaFX] Objekt um Zentrum rotieren (Camera) AWT, Swing, JavaFX & SWT 1
E JavaFx Screne mehr als ein "Objekt" zuordnen ? AWT, Swing, JavaFX & SWT 2
F 2D-Grafik Objekt durch Einwirkung einer Kraft im Raum bewegen AWT, Swing, JavaFX & SWT 14
J Bilder als Variable an einem Objekt speichern AWT, Swing, JavaFX & SWT 3
B Event Handling MouseListener Behält seine Variablen, auch wenn ich ein neus Objekt erstelle AWT, Swing, JavaFX & SWT 2
C Graphics Objekt in Zeitschleife zeichnen AWT, Swing, JavaFX & SWT 4
P Event Handling Anfängerfrage: ActionEvent bekommt kein Zugriff auf Objekt AWT, Swing, JavaFX & SWT 3
R Array aus einem Objekt auslesen AWT, Swing, JavaFX & SWT 4
V 2D-Grafik Frage zum Graphics Objekt AWT, Swing, JavaFX & SWT 2
A AWT TTF-Datei zu Font-Objekt finden? AWT, Swing, JavaFX & SWT 5
S Objekt durch Tasteneingabe mehrmals drehen AWT, Swing, JavaFX & SWT 9
E Swing Objekt zu Position (Point) bewegen AWT, Swing, JavaFX & SWT 2
T 3D-Grafik (Java3D) Aus einem Objekt einer Szene (Würfel, Ebene) die wichtigen Randkoordinaten auslesen AWT, Swing, JavaFX & SWT 3
K Action Listener implementieren über Objekt AWT, Swing, JavaFX & SWT 14
Java-Insel LayoutManager Ein GridBagLayout-Objekt für mehrere Panels? AWT, Swing, JavaFX & SWT 2
V Persistentes Objekt laden Progressbar AWT, Swing, JavaFX & SWT 7
F Canvas Objekt außerhalb des Frames zeichnen AWT, Swing, JavaFX & SWT 3
Furtano AWT paint braucht ein Graphics Objekt ? AWT, Swing, JavaFX & SWT 2
propra Schnittpunkt zwischen Objekt und Kante finden AWT, Swing, JavaFX & SWT 24
L Graphics Objekt - aus anderer Klasse aufrufen / übergeben AWT, Swing, JavaFX & SWT 5
S Objekt einmal laden zweimal anzeigen 3d AWT, Swing, JavaFX & SWT 6
I Swing Zugriff auf ein Objekt AWT, Swing, JavaFX & SWT 2
F Nur ein Objekt auf Canvas neu zeichnen AWT, Swing, JavaFX & SWT 4
R Möglichkeiten ein abgeleitetes Objekt zu erzeugen AWT, Swing, JavaFX & SWT 4
P Swing Wie bekomme ich eine Referenz auf ein Objekt das im EDT erzeugt wird? Und anderes... AWT, Swing, JavaFX & SWT 8
T Objekt in Kreisbahn bewegen AWT, Swing, JavaFX & SWT 5
B Zeichnen von Bildern auf JPanel aus eigenem Objekt AWT, Swing, JavaFX & SWT 19
V Parameter an Runnable-Objekt übergeben AWT, Swing, JavaFX & SWT 6
Dit_ Objekt mit ActionEvent übergeben AWT, Swing, JavaFX & SWT 2
S Unterscheiden ob ein Graphics-Objekt von einer JComponent oder einem BufferedImage kommt..? AWT, Swing, JavaFX & SWT 4
L Swing Auf unabhängiges Image-Objekt zeichnen AWT, Swing, JavaFX & SWT 8
A SWT SWT - Unbekannte Fläche (Objekt) erscheint im Composite AWT, Swing, JavaFX & SWT 6
D Objekt mit Button erstellen und mit anderem Button verwenden AWT, Swing, JavaFX & SWT 4
P Objekt kopieren AWT, Swing, JavaFX & SWT 2
M Graphics-Objekt aktualisiert sich nicht AWT, Swing, JavaFX & SWT 2
U [MVC] Objekt bearbeiten AWT, Swing, JavaFX & SWT 9
O Swing JTable Colum Objekt AWT, Swing, JavaFX & SWT 6
Dit_ Ein Kreis als Graphics2D oder als Ellipse2D Objekt AWT, Swing, JavaFX & SWT 19
M Objekt im ActionListener ansprechen AWT, Swing, JavaFX & SWT 3
C Wie komme ich an ein Objekt aus einem JTree? AWT, Swing, JavaFX & SWT 10
R FlowLayout: 1 Objekt pro Zeile AWT, Swing, JavaFX & SWT 5
kirchrath Swing Aus ActionEvent Objekt herausfinden auf dem er ausgeführt wurde AWT, Swing, JavaFX & SWT 4
E Graphics2D: altes Objekt löschen, wenn repaint aufgerufen wird AWT, Swing, JavaFX & SWT 7
S Objekt wird während Endlosschleife nur einmal bewegt AWT, Swing, JavaFX & SWT 2
W Objekt-array als Raster visualisieren AWT, Swing, JavaFX & SWT 3
F Herausfinden, auf welchem Objekt der Fokus liegt AWT, Swing, JavaFX & SWT 2
G Tooltip Text für ein Shape Objekt AWT, Swing, JavaFX & SWT 2
D DnD ganzer Objekte(Objekt erstellen) AWT, Swing, JavaFX & SWT 2
G Wie ziehe ich ein Objekt aus einer JList? AWT, Swing, JavaFX & SWT 7
O JTable mit objekt-daten füllen AWT, Swing, JavaFX & SWT 4
B in jList feld aus einem objekt anzeigen AWT, Swing, JavaFX & SWT 2
R SWT color Objekt AWT, Swing, JavaFX & SWT 4
K Graphics-Objekt zeichnet nicht alle Bilder AWT, Swing, JavaFX & SWT 3
N Graphics Objekt "puffern" AWT, Swing, JavaFX & SWT 7
L Objekt in JComboBox einfügen AWT, Swing, JavaFX & SWT 2
S JComboBox, ein Renderer und das selektierte Objekt AWT, Swing, JavaFX & SWT 4
R Graphics Objekt ändern AWT, Swing, JavaFX & SWT 11
B actionPerformed reagiert nicht auf das Canvas-objekt AWT, Swing, JavaFX & SWT 11
J DocumentListener uebergibt Objekt; wie in JTextfield casten? AWT, Swing, JavaFX & SWT 3
B Objekt in "actionPerformed" erzeugen und nutzen AWT, Swing, JavaFX & SWT 3
P JSpinner Objekt anstatt Zahlen sollen man Namen auswählen AWT, Swing, JavaFX & SWT 2
B Ein Image Objekt drehen? AWT, Swing, JavaFX & SWT 2
G Referenz über MenuItem aus ActionListener auf das Objekt AWT, Swing, JavaFX & SWT 8
lin Welches Objekt für einen About-Dialog verwenden? AWT, Swing, JavaFX & SWT 2
R Selectable Graphics Objekt gesucht. AWT, Swing, JavaFX & SWT 5
Wildcard FontMetrics ohne Graphics-Objekt AWT, Swing, JavaFX & SWT 13
S objekt kann methode der aufrufenden klasse nicht aufrufen AWT, Swing, JavaFX & SWT 2
Y Objekt in JFrame AWT, Swing, JavaFX & SWT 3
M Objekt in TableCellRenderer packen, warum ein Fehler? AWT, Swing, JavaFX & SWT 2
K Objekt in eine bestimmte Zelle eines JTables legen AWT, Swing, JavaFX & SWT 3
D getResource() bei Image-Objekt AWT, Swing, JavaFX & SWT 9
A Problem mit dem graphics-Objekt AWT, Swing, JavaFX & SWT 8
D in neues Image-Objekt zeichnen AWT, Swing, JavaFX & SWT 3
E warum erkennt er das objekt nicht???? AWT, Swing, JavaFX & SWT 4
G Fehler bei BasicStroke Objekt AWT, Swing, JavaFX & SWT 2
G Zurgriff auf Objekt über event.getComponent AWT, Swing, JavaFX & SWT 3
D Button und Textfeld Darstellung AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben