Veröffentlicht 18. Mai 200421 j 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.
18. Mai 200421 j 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)...
14. Dezember 200717 j 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....
16. Dezember 200717 j Hast du dich mit dem Tabellen-Tutorial schon beschäftigt? http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
17. Dezember 200717 j 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...-.-
17. Dezember 200717 j 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?!
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.