JTable sowohl Spaltennamen wie auch Spaltenbeschriftungen

richis-fragen

Aktives Mitglied
Hallo Forum
Wer hätte mir einen Tip wie ich folgendes Problem löse:
ich bräuchte im Header der JTable sowohl die Spalten-Namen und auch die Spalten-Bezeichnung.

Die Spalten-Namen sind identisch mit den Spalten-Namen der DB (z.B. sp1, sp2, sp3, etc.), resp. der Keys in der INI-, xlsx-, csv, usw. /-Datei
Dazu habe ich verschlüsselte Spaltenbezeichnungen, damit bei einem hack nicht gleich klar ist, was in den Spalten für Informationen stehen.

Wie kann ich jetzt die effektiven Spaltennamen beibehalten aber die entschlüsselten Spaltenbeschriftungen setzten/anzeigen?

Der Inhalt der Spalten ist ebenfalls mit eigenem Coder verschlüsselt und wird erst zum anzeigen entschlüsslt.
Darum mach das für mich einen Sinn.
Gruss Richi
 
Zuletzt bearbeitet:

KonradN

Super-Moderator
Mitarbeiter
Jetzt noch einmal aus dem anderen Thread dann hierher umgezogen.

Einfach gefragt wie setzte ich Spaltennamen (werden ja bei new JTable(...) übergeben.
Aber wie überschreibe ich jetzt die Spaltenbezeichnungen? Bis jetzt hat es mir immer die Spaltennamen, auf die ich später zugreife überschrieben... ???
Die Idee ist, dass Du nichts überschreiben musst in der JTable.

Die JTable sollte einfach nur Daten anzeigen, die vorab geladen wurden.
Die Klasse, die diese Daten lädt, die sollte also die entsprechende Umsetzung machen:
  • sp1, sp2, sp3, ... werden also in die entsprechend richtigen Namen geladen. Du hast also dann eine Datenklasse, in denen Du nicht die Felder sp1, sp2, ... hast sondern da hast Du die richtigen Namen
  • Da kann dann auch eine Ver-/Entschlüsselung stattfinden

Die Daten sind also in Datenklassen, in denen nichts verschlüsselt ist und wo alle Namen korrekt sind.
 

richis-fragen

Aktives Mitglied
Sorry, aber so kann ich ja nicht mit getColumname(c) arbeiten, weil dann der z.B. Vorname heisst.

Folgendes geht nicht:
String spalte = ...getColumname(c);
sql = "UPDATE tabelle SET "+spalte+" = 'neuVorname', WHERE id = 2;
Es gibt in der DB keine Spalte "Vorname", nur z.B "spalte2"

Es müsste also einen ...getColumname(c) (wäre dann spalte2) geben,
obwohl in der Spaltenüberschrift "Vorname" steht.

was habe ich da nicht verstanden?
Meine Methode müsste das Dynamisch erkennen, da ich nicht im Vorraus weiss was Spalten-Namen und Spalten-Bezeichnungen sind.
Und nicht immer ist spalte2 = Vorname.

Vielen Dank
Richi
 

KonradN

Super-Moderator
Mitarbeiter
Ich verstehe gerade nicht, an welcher Stelle Du eben genau so Code schreibst. Der Code, der auf die Datenbank zugreift, der sollte das Wissen haben, wie die Spalten heißen. Und daher kannst Du da dann auch das SQL entsprechend bauen. Das alles klingt also etwas danach, dass Du hier Verantwortlichkeiten nicht sauber trennst so dass Du beim erstellen von Datenbankabfragen auf die Columnnames einer JTable zugreifst. Und das sollte so nie sein.

Abhängigkeiten sollten in eine Richtung gehen. Und dann hast Du eine Abhängigkeit hin zu einem Data Access Object. Damit solltest Du keine Abhängigkeit haben zurück. Das ist also ein Argument neben dem separation of concerns.
 

richis-fragen

Aktives Mitglied
Ich habe es jetzt so glösst:
  1. deklariere eine String[] spNamen;
  2. übergebe aber new JTable(..., spText) -> sind die enschlüsselten Spaltennamen.
  3. setze spNamen = new String[]{...};
  4. und rufe mit spNamen[column] den effektiven Spaltennamen ab (spalte2 oder so)
Ich dachte nur das das so wie z.B. JLabel gehen könnte:
JLabel lab = new JLabel("Name");
lab.setName("spalte2");

Sorry, ich verstehe das halt nicht so richtig.
Aber so scheint es zu klappen.

Gruss Richi
 

richis-fragen

Aktives Mitglied
Sorry war zu langsam.
Ich verstehe gerade nicht, an welcher Stelle Du eben genau so Code schreibst. Der Code, der auf die Datenbank zugreift, der sollte das Wissen haben, wie die Spalten heißen.
woher? Die Tabelle weiss ja nicht wohin der Eintrag: Zelle(5, 4) hingehört!
Stehe wohl aufm Schlauch...:(

Was ich machen möchte ist:
Sobald z.B. der Vorname geändert wurde und das Feld mit Tab, resp. Enter verlassen wird, der Eintrag in der Datenbank gespeichert/geupdatet wird

Dazu verwende ich eine Methode die einen SQL-String (Statement) in die DB absetzt > Soweit so Gut.
Aber das SQL-Statement wird beim Verlassen (mit Enter oder Tab oder Klick in ein anderes Feld) sofort generiert, ausser bei ESC.
Und dazu muss ich die SQL sofort aufbauen und das geht soweit ich das verstanden habe direkt mit getSpNamen[column]; am schnellsten.

Jaaa, ich bin etwas von Gestern.

Gruss Richi
 

richis-fragen

Aktives Mitglied
Vielleicht sollte ich noch Erwähnen:
Das ganze Projekt soll ein MyTabelle.jar ergeben das ich in verschieden anderen Projekte importieren kann und ich mich nicht mehr um den Aufbau der Tabelle kümmern muss.

Woher die Daten auch kommen (Excel, INI-Datei, Access und vorallem MySQL)... ich möchte dann nur noch:
SpaltenNamen, SpaltenText, SpaltenTyp und die allenfalls gesetzte Darstellung übergeben.

Bei MySQL erhalte ich diese Infos mit einem einfachen SQL-Statement.

Dann lese ich die entsprechenden Records und befeuere die JTable.

Im Jar MyTabelle sind alle methoden enthalten wie z.B. Zeileneinfärbung bei MouseEntered/Exited, wenn gewünscht Zebra-Line (wechselnde Zeilenfarbe), Tooltipanzeige wenn Text kleiner als Spaltenbreite ist, die Möglichkeit setHorizontalScrollBar setzen, usw.

MyTabelle hat als extends ein JScollPane. Auch das muss ich künftig nicht mehr in der Hauptanwendung definieren (ausser der Grösse)

Vielleicht hilft das ja zu verstehen, was ich da machen will.
 

richis-fragen

Aktives Mitglied
Juhui Problem gelösst.
Muss nur noch drei Aufrufe in der Hauptanwendung machen:
  • tabelle = new JTable(new Object[]{spaltenText}) - resp. new JTable(String pfad), - resp. new JTable(String SQL, HashMap connections)
  • tabelle.setSpNamen(new String[]{...});
  • tabelle.setFormate(new Object[]{...});
Den Rest erledigt jetzt mein MyTable.jar
Wenn ich nicht meine Defaults verwenden will, kann ich das mit:
tabelle.setZebraLine(Color), tabelle.setRowHeight(int), tabelle.setGridLine(false) und vieles mehr.

Vielen Dank @KonradN
Richi

ps. Das mit den InstanceOf Fehlern meinerseits hat die Perfomance enorm erhöht. eine Million Records in 1.875 ms geladen.
Vorher 10 sec.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
richis-fragen JTable den angezeigten WERT nicht den Wert aus dem Model ausgeben. Java Basics - Anfänger-Themen 3
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
G JTable Listselectionlistener friert das Programm ein Java Basics - Anfänger-Themen 8
Mady Daten von JList & Combobox in JTable adden Java Basics - Anfänger-Themen 2
W Liste mit Listen in JTable darstellen Java Basics - Anfänger-Themen 1
J Zelleninhalt einer Jtable löschen Java Basics - Anfänger-Themen 2
E JTable einzelne Zelle färben Java Basics - Anfänger-Themen 2
thobren jtable arraylist Java Basics - Anfänger-Themen 12
thobren JTable Icon Java Basics - Anfänger-Themen 1
R Compiler-Fehler JTable mit XML befüllen | The constructor JTable(Object[], String[]) is undefined Java Basics - Anfänger-Themen 10
H Kapselung JProgressBar in JTable, aber getValueAt() greift nicht Java Basics - Anfänger-Themen 7
G JTable, Zeile auswählen und Ergebnis an Schaltfläche übergeben Java Basics - Anfänger-Themen 4
J Jtable Eingabe nach Klick ausserhalb der Tabelle übernehmen Java Basics - Anfänger-Themen 6
J JTable Spalteninhalt löschen Java Basics - Anfänger-Themen 1
J JTable Titel wird nicht angezeigt Java Basics - Anfänger-Themen 6
B jTable Spalte summieren Java Basics - Anfänger-Themen 7
N JTable auslesen Java Basics - Anfänger-Themen 6
O JTable in Excel mit Farben Java Basics - Anfänger-Themen 8
O Kommentar auf JTable Zelle Java Basics - Anfänger-Themen 2
M Jtable Reenderer Java Basics - Anfänger-Themen 0
O Popoup Menü im JTable richtig anzeigen Java Basics - Anfänger-Themen 6
M Jtable änderung updaten Java Basics - Anfänger-Themen 2
O JTable Suchfunktion Java Basics - Anfänger-Themen 2
M jTable bekommt null Java Basics - Anfänger-Themen 1
M JTable an andere Klasse übergeben Java Basics - Anfänger-Themen 2
M Datenbank in jTable Laden Java Basics - Anfänger-Themen 49
M Klasse in JTable einfügen Java Basics - Anfänger-Themen 7
S JTable Java Basics - Anfänger-Themen 16
S JTable mit Daten füllen Java Basics - Anfänger-Themen 7
L JTable Tagebuch Spaltenhöhe verändern Java Basics - Anfänger-Themen 3
S JTable - Filter an anderen Colums Java Basics - Anfänger-Themen 2
R JTable Suchfunktion mit SQL Daten Java Basics - Anfänger-Themen 2
C JTable update mit MySQL Datenbank Java Basics - Anfänger-Themen 1
C Best Practice JTable in MVC Pattern Java Basics - Anfänger-Themen 7
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
A zykl. Aktualisierne JTable Java Basics - Anfänger-Themen 9
C Endlosschleife bei füllen von Daten im JTable Java Basics - Anfänger-Themen 5
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
A Probleme beim zykl. aktulisieren von Daten in JTable Java Basics - Anfänger-Themen 3
V JTable welcher Listener ? Java Basics - Anfänger-Themen 7
D Falsche Zeile wird in JTable gelöscht Java Basics - Anfänger-Themen 6
D MySQL Abfrage in JTable speichern Java Basics - Anfänger-Themen 43
D JTable Zeile wird nicht in MySQL gelöscht Java Basics - Anfänger-Themen 16
D JTable Zeilen löschen Java Basics - Anfänger-Themen 5
C Klassen JTable wird ohne Header aufgebaut Java Basics - Anfänger-Themen 6
K (JTable) Text einer Zelle auf der linken Seite kürzel Java Basics - Anfänger-Themen 2
B Kniffel JTable Java Basics - Anfänger-Themen 5
N JTable flackert Java Basics - Anfänger-Themen 8
T JTable Daten aus txt datei Java Basics - Anfänger-Themen 3
J ArrayList wird in JTable falsch angezeigt Java Basics - Anfänger-Themen 0
J Eintragen von Personen in JTable Java Basics - Anfänger-Themen 4
X JTable mit grünen und roten Punkten Java Basics - Anfänger-Themen 2
LexeB4F DEL --> JTable Zelleninhalt Java Basics - Anfänger-Themen 3
R JTable Auslesen Java Basics - Anfänger-Themen 1
Crazynet jTable erste Zeile mit deffinierten Werten Java Basics - Anfänger-Themen 0
K Collections Sortieren nach zweiter Spalte in JTable Java Basics - Anfänger-Themen 18
J JTable Wert gleich überschreiben Java Basics - Anfänger-Themen 6
S Zeile entfernen aus JTable Java Basics - Anfänger-Themen 15
S JTable clonen Java Basics - Anfänger-Themen 5
H Best Practice PDF JTable Java Basics - Anfänger-Themen 4
S In JTable Zeile selektieren mit Mausklick Java Basics - Anfänger-Themen 16
D JTable Probleme beim Sortieren von Zahlen. Java Basics - Anfänger-Themen 6
M JTable mit XML datei befüllen Java Basics - Anfänger-Themen 1
F Zeile bei JTable hinzufügen Java Basics - Anfänger-Themen 6
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
M [JTable] getValue throws ArrayOutOfBoundException Java Basics - Anfänger-Themen 1
B JTable - Highlighter ??? Java Basics - Anfänger-Themen 3
S JTable LinkedList <Objekt> befüllen Java Basics - Anfänger-Themen 1
S JTable dynamisch mit Datenbankinhalten füllen Java Basics - Anfänger-Themen 6
W JTable mit einem JButton-Array füllen Java Basics - Anfänger-Themen 4
O JScrollPane zu gross für JTable Java Basics - Anfänger-Themen 2
L JTable Row selected -> fireTableDataChange do nothing. Java Basics - Anfänger-Themen 3
E JTable + TableModel updaten? Java Basics - Anfänger-Themen 1
O java.lang.IndexOutOfBoundsException JTable autoSort Java Basics - Anfänger-Themen 5
F JTable adding Row Java Basics - Anfänger-Themen 5
P jTable getColumnClass, mit unterschiedlichen Klassen in einer Column? Java Basics - Anfänger-Themen 5
M Eingabe in JTable bei Eingabe korrigieren Java Basics - Anfänger-Themen 2
Z jtable problem (das tausendste??) Java Basics - Anfänger-Themen 12
J JTable Java Basics - Anfänger-Themen 7
T JTable Java Basics - Anfänger-Themen 2
T JTable einzelne Zeilen löschen Java Basics - Anfänger-Themen 3
S Farbe eine Zeile in JTable ändern, wenn JButton geklickt wurd Java Basics - Anfänger-Themen 4
Uzi21 jTable / Inhalt speichern Java Basics - Anfänger-Themen 2
M Problem mit JTable und Model Java Basics - Anfänger-Themen 3
F Methoden JTable + 2 For-Schleifen Java Basics - Anfänger-Themen 4
C jtextfield und jtable Java Basics - Anfänger-Themen 34
X JTable mit Inhalten aus JTextField o.ä. füllen Java Basics - Anfänger-Themen 4
G JTable: SelectionListener Problem Java Basics - Anfänger-Themen 2
G JTable: Werte in Tabelle direkt ansprechen Java Basics - Anfänger-Themen 3
S Icons in JTable per ResultSet Java Basics - Anfänger-Themen 5
G Spalte in JTable unsichtbar machen, Zugriff auf Daten ermöglichen Java Basics - Anfänger-Themen 2
M Zelle von JTable mit Rahmen versehen Java Basics - Anfänger-Themen 4
G JTable: Inhalt einer selektierten Zeile speichern Java Basics - Anfänger-Themen 2
G JTable: mehrzeilige Zellen erstellen Java Basics - Anfänger-Themen 2
W Problem JTable Java Basics - Anfänger-Themen 5
M JTable wird nicht aktualisiert Java Basics - Anfänger-Themen 4
D jProgressBar soll bei 100% sein wenn sql Abfrage inkl. jTable schreiben fertig ist... Java Basics - Anfänger-Themen 5
S Warum wird JTable nicht angezeigt Java Basics - Anfänger-Themen 2
D jtable renderer und sortieren kombinieren Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben