JTable: Finde keinen Einstieg

martin1981ww

Grünschnabel
Guten Tag liebe tutorials.de User. Ich arbeite seit wenigen Monaten mit Java und muss sagen dass ich bisher noch nie so verzweifelt war.
Nun zu meinem Problem: Mein aktuelles Projekt ist die Entwicklung einer Kontaktdatenbank. Darin werden unter Anderem Namen, Anschriften, Telefonkontakte und ähnliches gespeichert. Soweit so gut, kein Problem mit der Datenabankanbindung oder der GUI. Bis auf die JTable, die ich gerne zum Anzeigen der ausgewählten Datensätze verwenden würde. (Die Datensätze werden über DropDownListen und ähnlichem ausgewählt. Funktioniert tadellos, soll hier auch nicht das Thema sein).

Da ich überhaupt keine Ahnung habe wie ich mit der JTable anfangen soll poste ich am besten hier den Code.
Die letzten Tage verbrachte ich damit hier im Tutorial nach Lösungen zu suchen, auf der Seite von Java-Buch und auf anderen Seiten im Netz. Leider habe ich nie den passenden Einstieg in das Thema gefunden.
An den entsprechenden Stellen im Code habe ich die Probleme kommentiert.

Code:
package testprojekt;

/*
** Imports
*/

import java.awt.*;
import javax.swing.*;
import com.borland.jbcl.layout.XYLayout;
import com.borland.jbcl.layout.*;
import java.util.*;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.*;

public class TestDialog extends JFrame {

/*
** Neues JBuilder XYLayout
*/
    
  XYLayout xYLayout1 = new XYLayout();

  public TestDialog() {
    super("TestFrame");
    try {
      jbInit();
    }
    catch (Exception exception) {
      exception.printStackTrace();
    }
  }

  private void jbInit() throws Exception {
    getContentPane().setLayout(xYLayout1);
    JTable table;
    String[][] data = new String[5][6];
    String[] colheads = {"Pos Nr", "DL Nr", "DL Bezeichnung", "Gesamtmenge",
                        "verarbeitete Menge", "zu bearbeitende Menge"};

/*
** 3 Möglichkeiten eine Tabelle zu erzeugen und sie zu füllen. Natürlich wurde beim     
** Ausführen nur eine Möglichkeit probiert und die beiden anderen auskommentiert.
*/

// Möglichkeit A -> In der Zelle, in der der Inhalt stehen sollte (0,0) steht diese Meldung           
// [Ljava.lang.Object;@139b78e	Wie kann ich das Objekt sonst einfügen?

    table = new JTable(3,6);   
    AbstractTableModel cmodel = (AbstractTableModel)table.getModel();    
				
    cmodel.setValueAt(new Object[] {new Integer(2),"test",new Double(2.8)},0,0);    
    

// Möglichkeit B -> Es entsteht eine Tabelle mit 5 Zeilen und dem gewünschten 
// Tabellenheader. Wie kann ich hier Daten in die Tabelle schreiben?

    table = new JTable(data, colheads);    
    
    
// Möglichkeit C -> Es entsteht eine Tablle mit den gewünschten Inhalten (eine Zeile mit 
// colheads und eine zweite Zeile mit 2, test,2.8). Leider entsteht hier aber kein 
// Tableheader.
   
    table = new JTable(0,7);
    DefaultTableModel amodel = (DefaultTableModel)table.getModel();
    
    amodel.addRow(colheads);
    amodel.addRow(new Object[] {new Integer(2),"test",new Double(2.8)});


/*
** Einfügen der Tabelle in eine JScrollPane sowie Spaltenformatierung (Breite)
*/

    this.getContentPane().add(new JScrollPane(table), new XYConstraints(40, 37, 299, 
    203));
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    table.getColumnModel().getColumn(0).setPreferredWidth(50);
    table.getColumnModel().getColumn(0).setMinWidth(10);
    table.getColumnModel().getColumn(0).setMaxWidth(100);
    table.getColumnModel().getColumn(1).setPreferredWidth(60);
    table.getColumnModel().getColumn(2).setPreferredWidth(30);
    table.getColumnModel().getColumn(3).setPreferredWidth(30);
    table.getColumnModel().getColumn(4).setPreferredWidth(30);
    table.getColumnModel().getColumn(5).setPreferredWidth(30);

  }

}

Mir geht es zunächst gar nicht darum Werte aus meiner Datenbank in eine Tabelle zu bekommen, mir würde es ja schon reichen wenn ich es manuell hin bekommen würde. Bin wirklich verzweifelt. Stell ich mich nur zu blöd an oder mach ich grundsätzlich etwas falsch?

Java: Version 1.5.0 (Build 1.5.0_11-b03)
Entwicklungsumgebung: Borland JBuilder

Bin über jede Hilfe sehr dankbar.
 
Hallo zeja.
Danke fuer den Link. Das hatte ich mir auch schon durchgelesen. Mit Hilfe dieses Artikels hab ich das erreicht was oben im Code zu sehen ist. Leider bekomme ich es damit aber nicht hin, die im Code als Kommentar (Moeglichkeit A - C) beschriebenen Probleme zu loesen. Mach ich etwas grundlegendes falsch oder stell ich mich nur zu bloed an
 
Zuletzt bearbeitet:
Nur durchlesen wird nichts nützen. Kopier die Beispiele mal und führe sie bei dir aus. Dann kannst du sie Stück für Stück so ändern dass du das erhälts was du benötigst.
 
Zurück