Swing Anfängerfrage JTable

Status
Nicht offen für weitere Antworten.

Enigma228

Bekanntes Mitglied
Wie bekomme ich nochmal hin das in der letzten Spalte der Table eine Checkbox erscheint?
Ich fülle die Table nur über das Model und wollte keine Vorbelegung sondern füllen über Funktion "filltable" im Model.

Model:
Java:
package doc;

import java.util.TreeSet;

import javax.swing.table.DefaultTableModel;

public class ResultsTableModel extends DefaultTableModel {

	public ResultsTableModel() {
		
	}

	@Override
	public boolean isCellEditable(int arg0, int arg1) {
		if(arg1==6){
			return true;
		}else return false;
	}

	@Override
	public String getColumnName(int column) {
		switch(column){
		case 0: return "";
		case 1: return "Name";
		case 2: return "Vorname";
		case 3: return "Strasse";
		case 4: return "Nr";
		case 5: return "Ort";
		case 6: return "";
		
		}
		return super.getColumnName(column);
	}

	@Override
	public int getColumnCount() {
		return 7;
	}

	@Override
	public void setColumnCount(int columnCount) {
		super.setColumnCount(7);
	}
	

	

	public void fillTable(TreeSet<Person> myPersons){
		int i=0;
		setNumRows(myPersons.size());
		for(Person p:myPersons){
			setValueAt(p.getIndex(), i, 0);
			setValueAt(p.getName(), i, 1);
			setValueAt(p.getFirstname(), i, 2);
			setValueAt(p.getStreet(), i, 3);
			setValueAt(p.getStreetnumber(), i, 4);
			setValueAt(p.getCity(), i, 5);
			setValueAt(false, i, 6);
			i++;
		}
	}
}
Table im Frame
Java:
	// Table-Modell
		rtm_listeningresults = new ResultsTableModel();
			// Table
		t_listeningresults = new JTable();
		t_listeningresults.setBackground(user_yellow);
		t_listeningresults.getTableHeader().setBackground(user_gray);
		t_listeningresults.setModel(rtm_listeningresults);
		t_listeningresults.getColumnModel().getColumn(0).setMaxWidth(0);
		t_listeningresults.getColumnModel().getColumn(0).setMinWidth(0);
		t_listeningresults.getColumnModel().getColumn(0).setWidth(0);
		t_listeningresults.getColumnModel().getColumn(0).setPreferredWidth(0);
		t_listeningresults.getColumnModel().getColumn(4).setMinWidth(40);
		t_listeningresults.getColumnModel().getColumn(4).setMaxWidth(40);
		t_listeningresults.getColumnModel().getColumn(6).setMinWidth(30);
		t_listeningresults.getColumnModel().getColumn(6).setMaxWidth(30);
		t_listeningresults.getSelectionModel().addListSelectionListener(new RowListener());
		t_listeningresults.setSelectionMode(0);
		t_listeningresults.addMouseListener(new MouseAdapter(){
			public void mouseClicked(MouseEvent arg0) {
				if(arg0.getClickCount()==2){
					b_change.doClick();
				}
				
			}
		});

Ich stelle mich 100%ig zu dämlich an!
Kann jemand helfen..
 
Danke für den Tip!!
jetzt läuft's!!

Java:
@Override
	public Class<?> getColumnClass(int columnIndex) {
		if(columnIndex==6){
			return Boolean.class;
		}else{
			return String.class;
		}
	}
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben