Swing JTable zusätzliche Spalte mit einer Checkbox einfügen

Steffanie

Mitglied
Hi Jungs,

Ich hab ein Problem, ich will für den Admin meines Programms die Möglichkeit geben frisch angemeldete User, in der GUI, freizuschalten.

Das Auslesen der Datenbank und das einfügen in JTable funktioniert!
Auch das übernehmen der Änderungen nun will ich aber das ganze verbesern und weniger Fehleranfällig machen!

Ich will zusätlich eine Checkbox in einer Spalte haben

Ich will dann in meiner Methode die die Änderungen in die DB schreibt
hier erstmal die Methode
Java:
private void writeDatainDB() {
		mnr = new int[rowData.length];
		for(int i = 0; i<rowData.length;i++) mnr[i]=Integer.parseInt(rowData[i][0]);
		for(int i:mnr)
			db.RunQuery("UPDATE benutzer SET Benutzerberechtigungslevel=0 WHERE Matrikelnummer ="+i+" AND");
			
	}
Das Problem ist das ich nicht alle User Updaten will sondern nur, in deren Zeile bei der Checkbox aus ein hacken gesetzt ist!
Die Registiertung erfolgt auf gewissen Anforderungen, spezielle Email, spezieller Username(vorname.nachname) etc etc.
Da sich jeder Zeit rein theoretisch aber auch ein User mit dem Namen ****.***** anmelden könnte will ich halt das der Admin auswählen muss welche User er freischaltet und welche nicht!

Gibts da eine möglichkeit?
Also nochmal zusammengefasst:
- Ich will in meiner letzen Spalte also ganz rechts in jeder Zeile eine Chechbox haben.
- Bevor in die DB geschrieben wird wird überprüft ob die Checkbox angehackt/true ist
- Dies soll verhindern das User freigeschaltet werden die nicht meinen Richtlinien entsprechen

Kennt ihr da einen trick finde auf Youtube nur veraltete Beispiele mit AWT bzw einen Haufen an Tutorial in spanisch... kann leider kein Spanisch selbst auf englisch finde ich nicht das was ich suche...
Java:
package de.studichatinc.chatsystem.chatclient;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;

import de.studichatinc.chatsystem.chatserver.MySQL;

public class userFreischaltenWindow extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5703172794913021298L;
	private String query="",arr1[],rowData[][];
	int[] mnr;
	JTable table;
	JScrollPane scroll;
	JButton btnBesttigen;
	JButton btnAbbrechen;;
	int sumofrows;
	MySQL db = new MySQL();
	/**
	 * Launch the application.
	 */
//  Auskommentiert da nur für Testzwecke benötigt
//	public static void main(String[] args) {
//		EventQueue.invokeLater(new Runnable() {
//			public void run() {
//				try {
//					userFreischaltenWindow frame = new userFreischaltenWindow();
//					frame.setVisible(true);
//				} catch (Exception e) {
//					e.printStackTrace();
//				}
//			}
//		});
//	}

	/**
	 * Create the frame.
	 */
	public userFreischaltenWindow() {
		setResizable(false);
		
		//--------- Die Spaltennamen werden festgelegt--------
		String[] columnNames =  {
				"Matrikelnummer", "Username","Email","userlevel"
		};
		//Ich hole mir die Daten aus der Datenbank
		getrowData();
	  	arr1 = query.split("\n");
	    rowData = new String[arr1.length][]; 
		
		for(int i = 0; i < arr1.length; i++){
			rowData[i] = arr1[i].split(",");
		}
	    //So jezzt haben wir ein Array mit den ganze DB Daten
	    
	    
	    ///----------------
		getContentPane().setLayout(null);
		setSize(420,450);
		setLocationRelativeTo(null);
		
		table = new JTable(rowData,columnNames);
		
		scroll = new JScrollPane(table);
		//scroll.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
		scroll.setBounds(10, 25, 383, 334);
		getContentPane().add(scroll);
		
		
		//Buttons
		btnAbbrechen = new JButton("Abbrechen");
		btnAbbrechen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				backtoChatgui();
			}
		});
		btnAbbrechen.setBounds(10, 370, 125, 23);
		getContentPane().add(btnAbbrechen);
		
		//Buttons
		btnBesttigen = new JButton("Best\u00E4tigen");
		btnBesttigen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				writeDatainDB();
			}
		});
		btnBesttigen.setBounds(268, 370, 125, 23);
		getContentPane().add(btnBesttigen);
		getContentPane().setVisible(true);
	}

	private void backtoChatgui() {
		Chat_Gui gui = new Chat_Gui();
		gui.setVisible(true);
		dispose();
	}

	private void writeDatainDB() {
		// TODO die Werte aus der Spalte mit dem Userlevel in dei Tabelle übernehmen
	
		mnr = new int[rowData.length];
		for(int i = 0; i<rowData.length;i++) mnr[i]=Integer.parseInt(rowData[i][0]);
		for(int i:mnr)
			db.RunQuery("UPDATE benutzer SET Benutzerberechtigungslevel=0 WHERE Matrikelnummer ="+i+" AND");
			
	}
	private void getrowData(){
		String extra ="";
		// extra = " WHERE Benutzerberechtigungslevel=-1";
		ResultSet ret = db.ReturnQuery("SELECT Matrikelnummer,Benutzername,Emailadresse,Benutzerberechtigungslevel FROM benutzer"+extra+"");
		
		try {
			while (ret.next()) {
				String matrikelnummer = ret.getString("Matrikelnummer");
				String benutzername = ret.getString("Benutzername");
				String email = ret.getString("Emailadresse");
				String benutzerberechtigungslevel = ret.getString("Benutzerberechtigungslevel");
				sumofrows++;
				if(query.equals("")){
					this.query = matrikelnummer + "," + benutzername + "," + email + "," + benutzerberechtigungslevel+"\n";
				}
				
				else{
					this.query += matrikelnummer + "," + benutzername + "," + email + "," + benutzerberechtigungslevel+"\n";
				}
				
				
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	
}
 
Zuletzt bearbeitet:

rme

Top Contributor
Hi Steffanie,

du hast Glück, das geht ganz von alleine und du musst gar nicht viel tun - falls du dafür sorgen kannst, dass deine Tabelle ihre Daten aus einem Model bekommt. Dort kannst du nämlich festlegen, welchen Datentyp die einzelnen Spalten haben. Und wenn du für eine Spalte "Boolean" als Datentyp vorsiehst, wird automatisch eine Checkbox verwendet.

Hier ein Minimalbeispiel, das du direkt starten kannst:

Java:
package mini;

import javax.swing.*;
import javax.swing.table.AbstractTableModel;

public class Mini extends JFrame {
    public Mini() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JTable table = new JTable(new Data());

        add(new JScrollPane(table));
        pack();
    }

    public static void main(String[] args) {
        Mini mini = new Mini();
        mini.setVisible(true);
    }
}

class Data extends AbstractTableModel {
    @Override
    public int getRowCount() {
        return 3;
    }

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

    @Override
    public Class<?> getColumnClass(int columnIndex) {
        switch(columnIndex) {
        case 0: return String.class;
        case 1: return Boolean.class;
        default: throw new UnsupportedOperationException("no such column: " + columnIndex);
        }
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        if(columnIndex == 0) {
            // daten-spalte
            switch(rowIndex) {
            case 0: return "braver studi";
            case 1: return "boeser studi";
            case 2: return "engelsgleicher studi";
            }
        } else {
            // checkbox-spalte gibt booleans zurueck
            switch(rowIndex) {
            case 0: return Boolean.TRUE;
            case 1: return Boolean.FALSE;
            case 2: return Boolean.TRUE;
            }
        }
        return null;
    }

}

Der wichtige Teil ist die Methode getColumnClass im Model, die Boolean für Spalte 2 zurückgibt. Falls du das mit dem TableModel noch nicht kennst oder nicht verstehst / umsetzen kannst, melde dich einfach nochmal :)

Gruß

rme
 

Steffanie

Mitglied
Wow. Einfach nur Wow. Danke für deine Hilfe

So mein Code des AbstractTableModels sieht nun so aus
-1. Problem bereitet mir die Methode getColumCount()
wie lasse ich diese Methode die Anzahl an zeilen aus die in der datenbank stehen?
- 2. Wie mache ich die Table bearbeitbar? Optimal nur die Spalte mit den Booleanwerten also die mit den Checkboxen
hab folgendes versucht ohne Erfolg
Java:
@Override
    public boolean isCellEditable(int row, int column) {
        return true;
    }
hier mal der komplette Code
Java:
class Data extends AbstractTableModel {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private MySQL db = new MySQL();
	private int sumofrows=100;
	private String query="",arr1[],rowData[][];
	int[] mnr;	
	String[] columnNames =  {
			"Matrikelnummer", "Username","Email","userlevel"
	};
	public Object[][] values;
	String extra ="";
	// extra = " WHERE Benutzerberechtigungslevel=-1";
	ResultSet ret = db.ReturnQuery("SELECT Matrikelnummer,Benutzername,Emailadresse,Benutzerberechtigungslevel FROM benutzer"+extra+"");
	
    @Override
    public int getRowCount() {
    	return 7;
    }

    @Override
    public int getColumnCount() {
        return 4;
    }
    
    @Override
    public boolean isCellEditable(int row, int column) {
        return true;
    }
 
    @Override
    public Class<?> getColumnClass(int columnIndex) {
        switch(columnIndex) {
        case 0: return String.class;
        case 1: return String.class;
        case 2: return String.class;        
        case 3: return Boolean.class;
        default: throw new UnsupportedOperationException("no such column: " + columnIndex);
        }
    }

 
    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
    	getData();
    	this.arr1 = this.query.split("\n");
    	this.values = new Object[this.arr1.length][]; 
		
		for(int i = 0; i <this.arr1.length; i++){
			this.values[i] = this.arr1[i].split(",");
		}
        

		if(columnIndex<3){
        return values[rowIndex][columnIndex];
        }else return false;
	
        
    }

    
    ///EXTRA
    private void getData(){
    	
		
		try {
			while (ret.next()) {
				String matrikelnummer = ret.getString("Matrikelnummer");
				String benutzername = ret.getString("Benutzername");
				String email = ret.getString("Emailadresse");
				String benutzerberechtigungslevel = ret.getString("Benutzerberechtigungslevel");
				
				sumofrows++;
				if(query.equals("")){
					this.query = matrikelnummer + "," + benutzername + "," + email + "," + benutzerberechtigungslevel+"\n";
				}
				
				else{
					this.query += matrikelnummer + "," + benutzername + "," + email + "," + benutzerberechtigungslevel+"\n";
				}
				
				
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
    //////_________________
 
}
zu 1.
Hab folgendes versucht
eine Klassenvariable beim jedes Durchlauf der Whileschleife beim holen der Daten aus der db, hochzählen lassen, --> diese dann an stelle einer fix Zahl ausgegeben
--> Ergebnis: Leere Anzeige

dann hab ich die Methode so um geschrieben

Java:
public int getRowCount() {
    	int i=0;
    	try {
    		
			while (ret.next()) {
				i++;				
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	
		return i;
    }
--> Auch keine Ausgabe

Java:
  public int getRowCount() {
    	    	
		return values.length;
    }
--> Exception....

Ich finde einfach keine Lösung zu meinem Problem mit der return 7 oder kleiner als 7 funktioniert es;
Aber ich komm mit keiner mir bekannten Hilfe an die anzahl an Zeilen.
Wahrscheinlich ist die Lösung trivial aber ich selbst komme einfach nicht darauf....
 
Zuletzt bearbeitet:

rme

Top Contributor
Hm.. mit den Models macht man das üblicherweise so:

Du speicherst darin eine interne Repräsentation deiner Daten - zum Beispiel String-Arrays, so wie du sie vorher der JTable direkt übergeben hattest. getColumnCount soll die Anzahl der Spalten zurückgeben, das sollte ja immer konstant sein, weil die Spalten schon vorher feststehen. Da musst du die Spalten der Dantebank rechnen, die du wirklich anzeigen willst - und dann noch eins addieren, um diese "virtuelle" Boolean-Spalte zu haben, die in der Datenbank ja nicht existiert.

So. Am Anfang ist das Model leer, d.h. der Konstruktor legt nur die leeren Listen an, die später gefüllt werden. An dieser Stelle kann das leere Model bereits der JTable übergeben werden, dann ist alles erstmal leer.

Irgendwas löst dann aus, dass du Daten aus der Datenbank lesen willst - das könnte beispielsweise eine Methode loadData() des Models sein, die sich mit der DB verbindet und die String-Arrays füllt. Jedesmal, wenn du eine neue Zeile in die String-Tabelle geschrieben hast, kannst du die Methode fireTableRowsInserted aufrufen. Als Parameter übergibst du den Index der eingefügten Zeile, d.h. die neue Größe der String-Tabelle abzüglich 1 (weil Größe 1 bedeutet, dass index 0 gerade gesetzt wurde). Die fire-Methode sagt der JTable, dass sich das Model geändert hat. Diese ruft daraufhin für jede Spalte getValueAt mit der neuen Zeilennummer auf, um den tatsächlichen Wert für die Zeile zu bekommen.

getRowCount kann einfach die Größe der internen Tabelle zurükgeben. Falls es da eine Exception gibt, kann das nur bedeuten, dass deine getValueAt-Methode nicht darauf vorbereitet ist, die Daten für alle Zeilen zurückzugeben. Also wenn du 3 zurückgibst, muss getValueAt damit klarkommen, dass der row-Index von 0 bis einschließlich 2 geht.

Hier mal ein Beispiel mit interner Tabelle:
Java:
    package mini;

    import java.util.LinkedList;
import java.util.List;

import javax.swing.*;
import javax.swing.table.AbstractTableModel;

    public class Mini extends JFrame {
        public Mini() {
            setDefaultCloseOperation(EXIT_ON_CLOSE);

            Data model = new Data();
            JTable table = new JTable(model);

            // Daten aus Datenbank laden
            model.loadData();

            add(new JScrollPane(table));
            pack();
        }

        public static void main(String[] args) {
            Mini mini = new Mini();
            mini.setVisible(true);
        }
    }

    class Data extends AbstractTableModel {
        private final List<String> prenames, surnames;
        private final List<Boolean> validNames;

        public Data() {
            // neue, leere, interne Tabelle erstellen, die spaeter durch SQL befuellt wird
            prenames = new LinkedList<>();
            surnames = new LinkedList<>();
            validNames = new LinkedList<>();
        }

        @Override
        public int getRowCount() {
            return prenames.size(); // man koennte auch surnames nehmen - sollten beide gleich lang sein
        }

        @Override
        public int getColumnCount() {
            return 3; // vorname, nachname, boolean
        }

        @Override
        public Class<?> getColumnClass(int columnIndex) {
            switch(columnIndex) {
            case 0: return String.class;
            case 1: return String.class;
            case 2: return Boolean.class;
            default: throw new UnsupportedOperationException("no such column: " + columnIndex);
            }
        }

        public void loadData() {
            // hier sollte eigentlich durch SQL gefuellt werden, so:
            insertStudent("Steffanie", "Javane");
            insertStudent("Hermeline", "Winter");
        }

        private void insertStudent(String prename, String surname) {
            // daten in internes model einfuegen
            prenames.add(prename);
            surnames.add(surname);
            validNames.add(Boolean.FALSE); // noch nicht bestaetigt -> also false
        }

        @Override
        public Object getValueAt(int rowIndex, int columnIndex) {
            switch(columnIndex) {
            case 0: return prenames.get(rowIndex);
            case 1: return surnames.get(rowIndex);
            case 2: return validNames.get(rowIndex);
            default: throw new UnsupportedOperationException("no such column: " + columnIndex);
            }
        }

        @Override
        public boolean isCellEditable(int rowIndex, int columnIndex) {
            // letzte Spalte darf von JTable geaendert werden
            if(columnIndex == 2) {
                return true;
            } else {
                return false;
            }
        }

        @Override
        public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
            // nutzer moechte valid-feld aendern
            if(columnIndex == 2) {
                validNames.set(rowIndex, (Boolean) aValue);
                System.out.println(prenames.get(rowIndex) + " ist nun gueltig: " + aValue);
            }
        }

    }

Ich habe dir darin noch gezeigt, wie du der JTable sagst, dass der Wert der Checkbox-Spalte geändert werden darf - dafür muss isCellEditable true zurückgeben. Beim Ändern wird dann setValueAt von der JTable aufgerufen, damit du das Model ändern kannst. Als Beispiel ändere ich da die interne Boolean-Liste und gebe den neuen Status aus.

Ist es jetzt ein bisschen klarer? Sonst bis nachher ;)
 

rme

Top Contributor
Huch, ich habe in der insertStudent-Methode vergessen, die fire-Methode aufzurufen. Das klappt jetzt nur, weil das Model vor dem ersten Zeichnen befüllt wird. Bitte beim Probieren ergänzen, zweimal die neue Listengröße - 1 als Parameter :)
 

rme

Top Contributor
Sehr gut :) Der Feinschliff wäre nun, dass du im Model nicht mehrere Listen pflegst, sondern eine kleine Klasse Student anlegst, die alle Eigenschaften hat, die du in deiner Tabelle haben möchtest. Dann kannst du eine Liste von Studenten im Model speichern und musst nicht für jede Eigenschaft eine einzelne Liste pflegen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
S HPRO und UPRO gemeinsame JTABLE gemeinsamer RENDERER ? AWT, Swing, JavaFX & SWT 1
F Swing JTable - MultiHeader inkl. Eingabemöglichkeit AWT, Swing, JavaFX & SWT 1
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
D Swing JTable Spaltenbreite AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G jTable - getSelectedRow() AWT, Swing, JavaFX & SWT 3
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JTABLE / wie oft wurde gewürfelt. AWT, Swing, JavaFX & SWT 1
F JTable vergrößern AWT, Swing, JavaFX & SWT 2
H JTable: Diverse NullPointer-Exceptions zur Laufzeit AWT, Swing, JavaFX & SWT 3
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
H JTable im JSplitPane darstellen AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
R Swing JTable und Spaltenausrichtung AWT, Swing, JavaFX & SWT 8
G JTable füllen AWT, Swing, JavaFX & SWT 1
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
J Datensatz in jTable ausgeben AWT, Swing, JavaFX & SWT 3
M Swing Automatischer Editorstart in JTable-Zelle AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
M JTable.setDefaultRenderer(...) greift nicht AWT, Swing, JavaFX & SWT 0
J JTable: Eingabe in Tabellenzelle korrigieren AWT, Swing, JavaFX & SWT 4
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
H Swing Jtable extra spalte AWT, Swing, JavaFX & SWT 6
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
N AWT jTable CellRenderer AWT, Swing, JavaFX & SWT 6
T Swing JTable valueChanged datensatz löschen AWT, Swing, JavaFX & SWT 1
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
S Jtable defaultRenderer wohin damit ? AWT, Swing, JavaFX & SWT 23
T Swing JTable / FocusListener AWT, Swing, JavaFX & SWT 0
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
J addRow bei JTable AWT, Swing, JavaFX & SWT 6
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
Meeresgott Swing JTable AWT, Swing, JavaFX & SWT 4
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
Thallius JTable dynamisch laden? AWT, Swing, JavaFX & SWT 2
B Swing JTable sortieren AWT, Swing, JavaFX & SWT 2
T Swing JTable auslesen und befüllen AWT, Swing, JavaFX & SWT 8
B JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
J JTable und Suchlogik AWT, Swing, JavaFX & SWT 4
Viktim Swing JTable mit Tab verlassen AWT, Swing, JavaFX & SWT 1
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
Viktim Swing JTable Mit Tab druch Zeilen Wechseln AWT, Swing, JavaFX & SWT 5
Thallius Warum refrehsed mein JTable nicht? AWT, Swing, JavaFX & SWT 5
Ghostman1711 Hinzufügen ausgewählter Dateinen des Filechoosers zu einem JTable AWT, Swing, JavaFX & SWT 9
S Swing JTable - Einzelne Rows einfärben AWT, Swing, JavaFX & SWT 11
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
K JTable getValueAt() klappt nicht immer AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
P JTable - bei Eingabe Selektion AWT, Swing, JavaFX & SWT 0
P Fokus auf Zelle in JTable AWT, Swing, JavaFX & SWT 1
S Swing Deselektion in JTable verhindern AWT, Swing, JavaFX & SWT 0
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
N Swing Print JTable mit AbstractTableModel AWT, Swing, JavaFX & SWT 1
Ananaskirsche Swing jTable Reihen zuviel eingefügt AWT, Swing, JavaFX & SWT 12
P im JTable die Schriftfarbe ändern AWT, Swing, JavaFX & SWT 19
T Swing JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
S Dreiecke in bestimmte Zellen einer JTable AWT, Swing, JavaFX & SWT 9
LexeB4F Zelle in JTable gezielt einfärben AWT, Swing, JavaFX & SWT 4
LexeB4F JTable mehrere Zelle selektieren und inhalte Löschen.. Ideen gesucht AWT, Swing, JavaFX & SWT 1
D Swing JTable Renderer Grafikfehler AWT, Swing, JavaFX & SWT 0
K Swing JTable mit ImageIcon und Text in einer Zelle AWT, Swing, JavaFX & SWT 1
M Swing JTable GroupableHeader Background Color AWT, Swing, JavaFX & SWT 4
K Swing JTable updaten AWT, Swing, JavaFX & SWT 9
thet1983 Swing MySQL >> JTable AWT, Swing, JavaFX & SWT 5
J JTable bounds ändern durch resizing des Fensters AWT, Swing, JavaFX & SWT 9
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7
O JTable linksbündig drucken (nicht der Zelleninhalt) AWT, Swing, JavaFX & SWT 2
Crazynet xls Datei in JTable AWT, Swing, JavaFX & SWT 3
O JTable ohne Rahmen printen AWT, Swing, JavaFX & SWT 3
L Swing JTable refresht die Column Namen nicht AWT, Swing, JavaFX & SWT 0
K JTable komplett durch andere ersetzen AWT, Swing, JavaFX & SWT 4
S JTable übernimmt Änderungen nicht AWT, Swing, JavaFX & SWT 2
Y JTable AWT, Swing, JavaFX & SWT 6
D Swing JCombobox in einem JTable vorbelegen AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben