Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Wie JCheckbox in JTable??

Empfohlene Antworten

Veröffentlicht

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.

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

vielen dank!!

  • 3 Jahre später...

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

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

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.