Ich habe hier wie man sieht 2 Klassen. In Klasse 2 soll man anhand des bildes werte eingeben können. Diese werden auch als ArrayList gespeichert.
Nun habe ich das problem das ich absolut keine ahnung habe, wie ich die ArrayList wie im Bild dargestellt, mit Bild und den entsprechenden Werten in der JList darstellen kann. Außerdem möchte ich bei jedem Bild einen JButton einfügen der beim betätigen das entsprechende Element, löscht.
Habe schon viel gelesen von dem ListCellRenderer und eigener JComponenten…habe mir auch Tutorials usw. dazu angesehen…blicke aber einfach nicht durch
Wäre sehr cool wenn mir jemand erklären könnte wie ich das Lösen kann.
Hm hilft mir nicht wirklich weiter, da ich wie gesagt noch nie damit gearbeitet habe. Nicht böse gemeint aber sagen wir es so. Bin froh das ich das Zweite Semester mit Java geschafft habe
Vielleicht mag jemand so nett sein und mir das implementieren, wenn ich ihm alles schicke?
Ansonsten wäre eine kleine anleitung cool.
Was muss ich zuerst machen? Wie bekomme ich die Daten von der ArrayList in die JList (DefaultListModel!?)…wie verwende ich den CellRenderer?
Tut mir wirklich leid aber ich sitze schon den halben Tag am Rechner und versuche das zu verstehen
@Tomate_Salat : Bei so einem Renderer sollte man die zurückgegebene Component i.a. nicht bei jedem Rendern neu erstellen. Die wird eher wie ein “Stempel” benutzt -also die selbe immer wieder neu gefüllt. Aber hier ist das vielleicht noch nicht sooo wichtig.
Wenn ich dich richtig verstehe thoma, dann möchtest du nicht nur die Komponente rendern, sondern auch noch die Funktionalität des JButtons wahren. Da würde sich eher ein JTable mit nur einer Spalte anbieten, damit währe das einfacher möglich. JList+Renderer ist da nich so die treffende Wahl.
Buttons in einer JTable sind IMHO auch ein Krampf. Ich hatte schon im anderen Forum gesagt (und sage hier nochmal) dass mir nicht einleuchtet, warum man das nicht einfach mit ein paar selbstgebauten Components macht, aber es weiß eben auch niemand, was genau das am Ende werden soll…
Also ich habe jetzt mal einen JTable mit dummy daten erstellt. Gefällt mir schon ganz gut soweit…nur wie fülle ich jetzt meinen dynamisch wachsenden array (ArrayList) in den JTable? Meine ArrayList befindet sich in einer anderen Klasse.
Wenn ich nun ein neues Objekt der Klasse erzeuge um auf die ArrayList zu zugreifen, wird die Klasse nicht mehr dargestellt.
GUI Klasse (Klasse mit dem JTable)
NeuHardwareFenster Klasse (Fenster was sich öffnet um neues PC Hardware zu erstellen mit ArrayList).
habe in der hauptklasse (GUI) folgendes erstellt.
public class GUI()
{
jlabels usw....
NeuHardwareFenster neuFenster;
public GUI()
{
jlabels usw...
guiErstellen(); // Erstellt das GUI...
neuFenster = new NeuHardwareFenster();
}
}
gibt es eine andere möglichkeit auf das Array der anderen klasse zu zugreifen?
damit ich es dem JTable hinzufügen kann?
[QUOTE=tomha]gibt es eine andere möglichkeit auf das Array der anderen klasse zu zugreifen?
damit ich es dem JTable hinzufügen kann?[/QUOTE]
Eine andere Möglichkeit als was?
Man kann sich ein eigenes TableModel definieren, welches die ArrayList direkt nutzt - ohne Umweg über Array oder Vector. Davon abgesehen ist ein eigenes TableModel ohnehin gängige Praxis.