Jtable mit speziellem layout

Ich müsste hier ein Formular erstellen, bei dem beliebige Zeilen eingefügt werden können. Wie hier im beispiel:

Das Layout ist nicht das Problem, nur hab ich keine Ahnung wie ich Zeilen nachträglich soll hinzufügen. Ich habe an eine JTable gedacht mit einer Datenbank im Hintergrund.

Gibt es für solche Aufgaben irgend eine Funktion oder etwas das ich übersehe? Ich stell mir das extrem schwer vor selbst zu handeln… Doch leider hab ich das Gefühl
dies zu tun…

Bin gespannt auf eure Antworten

Gruss

So schwer ist das nicht. Am einfachsten per JList oder JTable mit passendem Renderer. Ansonsten kann man auch einfach ein geeignetes Layout wie Box, Group, Mig, Forms nehmen und sich seine Zeilen eben in einer List merken.

Bis jetzt hab ich mit rendern eben noch nichts gemacht…

Gut, dann heisst es das lernen… Hast du einen Tipp in welche Richtung ich suchen muss?

http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#renderer

Ein Renderer hält eine Instanz eines JComponents (üblicherweise ein JLabel, du kannst aber auch komplexere dinge damit anstellen). Die getRenderingComponent Funktion wird von der View für jede Zelle aufgerufen. Ihr werden dabei diverse parameter, u.a. der Wert (value) der Zelle übergeben. Aufgrund der Parameter kann in der Methode dann die Instanz verändert und dann zurückgegeben werden. Wichtig ist, nur eine Instanz zu verwenden und nicht jedes mal einen neuen JComponent zu erzeugen (Performance). Im einfachsten Fall sieht das einfach so aus:

class MyRenderer implements TableCellRenderer
{
JLabel label=new JLabel();
@Override
public JComponent getRendererComponent(Object value, diverse andere parameter)
{
label.setText(String.valueOf(value));
}
}

Es ist aber auch durchaus möglich ein ganzes JPanel mit mehreren Feldern zurückzugeben was dann in dieser Zelle angezeigt wird.

Ahso

na dann vielen Dank für die Hilfe…

Mach ich mich gleich ans schreiben…