tacmot Geschrieben 18. Mai 2004 Geschrieben 18. Mai 2004 Hi Leute, bin gerade dabei meine ersten Java-Schritte zu wagen und hab ne Tabelle erstellt. Nun möchte ich in der ersten Spalte der Tabelle jeweils Checkboxen einfügen. Allerdings stehenin den Feldern der Tabelle nur die Parameter der Checkbox?!? Hat jemand einen Lösungsansatz wie ich die Checkbox graphisch in das Feld bekomme? Danke schonmal. Zitieren
Peeter Geschrieben 18. Mai 2004 Geschrieben 18. Mai 2004 In deinem TableModel kannst du pro Spalte festlegen welchen Inhalt deine Spalte haben soll... Dazu brauchst du die Methode: public Class getColumnClass(int columnIndex) { if (columnIndex == SPALTE_MIT_TRUE_FALSE) return Boolean.class; else if (columnIndex == SPALTE_MIT_ZAHLEN) return Integer.class; return String.class; } Diese Methode in deinem TableModel einfach so überschreiben und das war's... "Boolean.class" liefert dir dein Kästchen mit Häckchen (oder ohne)... Zitieren
BlinderOpa Geschrieben 14. Dezember 2007 Geschrieben 14. Dezember 2007 bei mir Funktioniert es trotzdem nicht...-.- ich glaub, ich hab die Methode wo falsches reingesetzt... bei mir siehts kurz gefasst so aus: SQLAccess() { Object [][] zwischenarray ; JTable table; String[] columnNames= { "ID", "Vorname","Nachname","Status","Telefon","Letzte Änderung"}; public void Tabellenbox() throws SQLException { Tabellenbox.setLayout( new BoxLayout( Tabellenbox, BoxLayout.Y_AXIS ) ); zwischenarray[zaehler][0] =new Integer(zaehler+1); zwischenarray[zaehler][1]="newName"; zwischenarray[zaehler][2]="newName"; zwischenarray[zaehler][3]= new Boolean (true) ; // habe hier auch schon boolean.class versucht... zwischenarray[zaehler][4]="newPhone"; while ( rs.next() ) { zwischenarray [ID][0]= rs.getInt(1); zwischenarray [ID][1]= rs.getString(2); zwischenarray [ID][2]= rs.getString(3); zwischenarray [ID][3]= rs.getBoolean(4); zwischenarray [ID][4]= rs.getString(5); zwischenarray [ID][5]= rs.getDate(6); ID=ID+1; Tabellenbox.setBorder(new LineBorder(Color.green, 1)); } table = new JTable( zwischenarray, columnNames ); Tabellenbox.add( new JScrollPane( table ) ); } public int getColumnCount() { return columnNames.length; } public int getRowCount() { return zwischenarray.length; } public String getColumnName(int col) { return columnNames[col]; } public Object getValueAt(int row, int col) { return zwischenarray[row][col]; } [B]public Class getColumnClass(int c)[/B] { return getValueAt(0, c).getClass(); } //etc... } wie gesagt... ich hab den Code etwas verkürzt... hab schon in mehreren Foren usw gelesen... überall steht nur drin, dass ich diese Methode implementieren soll und gut is... Die Tabelle wird mir ja komplett und schön angezeigt (mit der ganzen Datenbank...) alles kein Problem... nur eben dieser Comboboxen (und Später der Eventlistener) macht mir Probleme.... Zitieren
perdian Geschrieben 16. Dezember 2007 Geschrieben 16. Dezember 2007 Hast du dich mit dem Tabellen-Tutorial schon beschäftigt? http://java.sun.com/docs/books/tutorial/uiswing/components/table.html Zitieren
BlinderOpa Geschrieben 17. Dezember 2007 Geschrieben 17. Dezember 2007 hab schon diverse Tutorials durchgelesen und diverse Foren durchsucht... alle sagen nur, dass ich im Prinzip die Jtable-Spalte als Boolean deklarieren muss... und das geht mit dieser Methode die man implementieren aber nicht aufrufen muss, da die von allein mit ausgeführt wird... und ein kleines Beispielprogramm... aber ich bilde mir ein, dass ich diese Beispielprogramme soweit abkopiert habe, dass es funktionieren müsste....-.- (PS: Einbildung ist auch eine Bildung!!) nur, dass mein Programm anders aufgebaut ist... ich hab z.B. die Datenbankmethode, die mein zwischenarray mit Daten füttert... und danach wird in der gleichen Klasse mein jTable mit dem array initialisiert... und in dieser einen Klasse ist ebenso die getColumnClass-Methode...-.- Zitieren
perdian Geschrieben 17. Dezember 2007 Geschrieben 17. Dezember 2007 anach wird in der gleichen Klasse mein jTable mit dem array initialisiert... und in dieser einen Klasse ist ebenso die getColumnClass-Methode...-.-Da gehört sich aber nicht rein (es sei denn du implementierst einen TableCellRenderer / TableCellEditor). Vielleicht solltest du die Tutorials nochmal lesen?! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.