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…
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.
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.