Checkbox in JTable

Mauro_Lupo

Grünschnabel
Hallo Leute,
ich weiß, dass es genug Beiträge hierzu gibt, allerdings bin ich zu Blöd um es auf mein Problem zu übertragen.

Und zwar erstelle ich meine JTable aus Daten meiner Datenbank, nun möchte ich eine Column hinzufügen, die aber nicht in der Datenbank auftauchen soll. Diese soll mit checkboxen gefüllt sein. Wie kann ich das realisieren ?
Hier mein code wie ich mir die Tabelle aus meiner Datenbank hole:
Java:
public static Vector[] getTableInfo(){
        try{
            Connection con= DBConnect.getConnection();
            PreparedStatement st=con.prepareStatement("SELECT * FROM Daten");          
            ResultSet rs=st.executeQuery();
            ResultSetMetaData rsmt = (ResultSetMetaData) rs.getMetaData();
            int c = rsmt.getColumnCount();
            Vector column = new Vector(c);
            for(int i = 1; i <= c; ++i){
                column.add(rsmt.getColumnName(i));
            }
            System.out.println(column);
            Vector data = new Vector();
            Vector row = new  Vector();
            while(rs.next()){
                row = new Vector(c);
                for(int i = 1; i <= c; ++i){
                    row.add(rs.getString(i));
                }
                data.add(row);              
            }
            System.out.println(data);
            Vector[] tableStuff = new Vector[2];
            tableStuff[0] = data;
            tableStuff[1] = column;
            return tableStuff;
        }catch(Exception e){e.printStackTrace();}
        return null;
    }

Danke im Voraus

Mauro
 

HonniCilest

Erfahrenes Mitglied
Das kommt darauf an, ob die Checkbox auch einen Text enthalten soll.

Wenn nicht, dann reicht es aus die entsprechende Spalte als boolean zu declarieren und in deinem Datensatz (bei dir Vector) muss der Default enthalten sein.

Beispiel:

Java:
import javax.swing.JFrame;
import javax.swing.JTable;

public class TutorialsDeExample extends JFrame {
 private static final long serialVersionUID = 1L;
 public TutorialsDeExample () {
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  setSize(200, 200);
  
  Object[][] data = {{new Boolean(true), "FOO"}, {new Boolean(true), "BAR"}};
  String[] colNames = {"A", "B"};
  
  JTable table = new JTable(data, colNames) {
   private static final long serialVersionUID = 1L;
   @SuppressWarnings("unchecked")
   @Override
            public Class getColumnClass(int column) {
                switch (column) {
                    case 0:
                        return Boolean.class;
                    default:
                        return String.class;
                }
            }
  }; 
  
  add(table);  
 }
 
 public static void main(String[] args) {
  TutorialsDeExample tde = new TutorialsDeExample();
  tde.setVisible(true);
 }
}
 

Neue Beiträge