Zum Inhalt springen

Wie JCheckbox in JTable??


Empfohlene Beiträge

Geschrieben

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?

jtable.JPG

Danke schonmal.

Geschrieben

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)... :)

  • 3 Jahre später...
Geschrieben

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....

Geschrieben

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...-.-

Geschrieben
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?!

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...