Nachträglich Checkbox an Table anfügen

  • Themenstarter Themenstarter moketas
  • Beginndatum Beginndatum
M

moketas

servus!

bin ein java anfänger und spiele mich ein bisschen mit möglichkeiten tabellen aus einer db anzuzeigen und mit ihnen etwas anzustellen. nun habe ich mit hilfe eines tutorials auf eine db zugriff und kann sie anzeigen lassen. habe darüber hinaus eine weitere spalte hinzufügen können. jetzt würde ich gerne nachdem die tabelle erstellt wurde die zugefügte spalte als checkbox fungieren lassen. ich weiss dass es gehen würde wenn ich mir selber eine tablemodell bastelle aber da ich ja aus einer db-table sowohl die daten als auch die überschriften nehme würde ich gerne einfach nachträglich den "typ" der letzten spalte ändern. vlt geht das ja einfach vlt auch nicht. weiss es ja nicht. hier ist der bisherige code:

public class Hauptfenster extends javax.swing.JFrame {

/** Creates new form Hauptfenster */
public Hauptfenster() {

initComponents();
aktualisiereTabelle();

}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

scrollTabelle = new javax.swing.JScrollPane();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().add(scrollTabelle, java.awt.BorderLayout.CENTER);

java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
setBounds((screenSize.width-800)/2, (screenSize.height-600)/2, 800, 600);
}// </editor-fold>

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Hauptfenster().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JScrollPane scrollTabelle;
// End of variables declaration
private void aktualisiereTabelle() {
Vector columnNames = new Vector();
Vector data = new Vector();
try{
//Abfrage definieren
String query = "SELECT * FROM broen;";
//Datenbankverbindung herstellen
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection( "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:/DATEN/BPDIV/OENACE.MDB","","" );
System.out.println("Connection Successful ");
java.sql.Statement stmt = con.createStatement();
ResultSet rst = stmt.executeQuery(query);
ResultSetMetaData md = rst.getMetaData();
int columns = md.getColumnCount();
// Spaltennamen ermitteln
for (int i = 1; i <= columns; i++) {
String colname=md.getColumnName(i);
columnNames.addElement( colname );
}
//zusätzliche spalte anlegen
columnNames.addElement("check");

// Zeileninhalt ermitteln
while (rst.next()) {
Vector row = new Vector(columns);
for (int i = 1; i <= columns; i++) {
row.addElement( rst.getObject(i) );
}
data.addElement( row );
}
rst.close();
stmt.close();
con.close();
} catch(Exception e) {
e.printStackTrace();
}
// Tabelle erzeugen
JTable table = new JTable(data, columnNames);

//wie ändere ich die letzte spalte in eine checkbox?

scrollTabelle.setViewportView(table);

}
}
 
Moin,

halte Dich bitte an die Netiquette: http://www.tutorials.de/index.php?pg=netiquette
Speziell auf lesbare Texte dank Groß- und Kleinschreibung wird hier viel Wert gelegt.

Desweiteren solltest Du Deinen Code lesbarer gestalten, in dem Du die Code-Tags (#-Button im Editor oder Klammerung des Codes mit [_JAVA][_/JAVA] ohne die Unterstriche) verwendest.

So ist es so unleserlich, dass sich kaum jemand die Mühe machen wird, durch einen so großen Codeblock durchzuwuseln !!

Danke und Gruß
Klaus
 
Zurück