Maximale Zeilenanzahl einer JTable erweitern

Status
Nicht offen für weitere Antworten.

xcr

Mitglied
Nun denken sich sicher einige:
Schon wieder so ein Spinner dem 130.000.000 Zeilen nicht reichen? Der soll doch seine Daten filtern, soviel kann eh kein mensch anzeigen wollen.

Wenn mir einer sagen kann wie das einfach geht, gerne.

Hier also mein Problem: Einen Teil meiner Anwendung bildet ein Bitviewer, welcher die einzelnen Bits einer Datei anzeigt. Die Anzahl der Spalten beträgt dabei zwischen 8 und 64, wobei 16 Standard ist (daneben werden noch die entsprechenden Bytes als ANSI-Codierte Symbole etc. angezeigt).

Nun übersteigt schon die Anzeige einer 600 MB Datei die maximalen Zeilen bei weitem, also benötige ich ein paar Ideen wie man sowas realisieren könnte.
Das Problem ist ja bekanntlich die Höhe der Tabelle. Meine Idee wäre nun eine Wrappertabelle zu schreiben, die prinzipiell aus einer Menge von Offset-Tabellen besteht. Die Wrappertabelle hat eine bestimmte, festgelegte Höhe und zeigt jeweils einen entsprechenden Ausschnitt aus einer der kleinen Offset-Tabellen. OT0 geht etwa von Zeile 0 bis 99999999, OT1 von 99999899 bis 199999898 usw.

Haltet ihr ein solches Vorgehen für sinnvoll oder hat jemand eine Alternative?
Es wäre vermutlich ein Haufen Arbeit, daher frage ich vorher einfach mal.

Achja bevor einer meckert: nein ich halte die Informationen zum Inhalt NICHT komplett im Speicher ;)

MfG xcr
 

Marco13

Top Contributor
Und sowas soll mit einem RowFilter nicht gehen ???:L (Hab den noch nie "echt" benutzt....deswegen frag' ich)

Aber so ein TableModel, das einen Ausschnitt aus einem anderen TableModel repräsentiert, ist nicht so aufwändig. Sowas hatte ich mal gebastelt http://www.java-forum.org/de/viewtopic.php?t=74037&highlight=tablemodelutils Hab' es gerade mal für die potentielle Verwendung bei "großen" Tabellen optimiert: Mit
RangeTableModel rangeTableModel = TableModelUtils.createSubTableModel(tableModel, minRow, minCol, maxRow, maxCol);
kann man sich ein RangeTableModel erstellen, das den angegebenen Ausschnitt des gegeben TableModels repräsentiert. Mit
rangeTableModel.setRange(minRow, minCol, maxRow, maxCol);
kann (wenn man das will) man diesen Ausschnitt nachher noch verändern.

Vielleicht kannst/willst du es nicht direkt so verwenden, aber vielleicht hilft es als Inspiration oder Ausgangspunkt für dein eigenes "Range"TableModel.

BTW: Vom Konzept her spricht da IMHO nichts dagegen: Ein TableModel ist nur eine Ansicht auf irgendwelche Daten - das TableModel verwendet man sozusagen(!) nur, um festzulegen, welche Daten in einer JTable angezeigt werden. Z.B. werden bei einem TableSorter ja auch keine echten Daten echt sortiert, sondern nur ein TableModel angeboten, das eine sortierte Ansicht auf bestehende Daten liefert.
 

xcr

Mitglied
Das mit dem RowFilter ist schonmal ein Ansatz den ich mir genauer ansehen will. Ich habe das bisher noch nie gesehen, danke für den Hinweis.
Ich mache mir derzeit noch Sorgen, dass es mit der Scrollbar Probleme geben könnte aber das werde ich ja demnächst direkt beim Experimentieren sehen.

Ich melde mich, wenn ich entweder iene Lösung oder mehr Fragen habe :]
 

André Uhres

Top Contributor
Von einer gewissen Grösse an wird die JTable mehr als eine Seite scrollen, wenn du die Scrollbar nur ankuckst :lol:
In dem Fall wäre die JTable wohl unbrauchbar und die Standardbegrenzung sinnvoll.
 

xcr

Mitglied
Das ist wohl wahr, ich habe da auch schon drüber nachgedacht.
Aus diesem Grund wird man auch mit den Tasten Cursor hoch/runter und Bild auf/ab arbeiten können.

Ich habe beim Testen der Anwendung jedoch fast immer mein Jump-To-Bit oder Skit-Bits-Eingabefeld benutzt, meist bekommt man genaue Positionen durch irgendein Feld angegeben und navigiert da hin. Wenn ich scrolle dann eh fats immer mit der Maus und das bekomm ich so hin, dass max. 1 Seite gescrollt wird.

Momentan schiebe ich das Problem noch vor mir her, ist ja Weihnachten (naja fast... Heilig Abend immerhin), also frohe Weihnachten von mir an euch :)
 
V

voidee

Gast
Warum bewegst du Dich nicht mittels Dateipointers durch die Datei und zeigst dann immer nur einen entsprechenden Teil an?

Zeigst du die Datei wirklich bitweise oder doch byteweise an?
 

xcr

Mitglied
Also es sind tatsächlich die einzelnen Bits die ich anzeige. Mein Anzeigemodell unterstützt alternativ auch die Anzeige als Bytes in Oct, Dez, Hex und als ANSI-Symbol aber grundsätzlich können auch die Bits dargestellt werden.

Genau zu erklären warum es bitweise sein muss würde vermutlich den Rahmen des Topics sprengen. Die Anwendung wird eine Umsetzung des sogenannten Bitstream Segment Graph werden, welcher zur Annotation von Dateiformatspezifischen Strukturen in Binärdateien verwendet wird (wer genaueres zu dem Thema wissen möchte kann z.B. googeln).

Das Problem ist wie gesagt nicht die Datenmenge, sondern die Scrollpane bzw die JTabel drin. Derzeit verwende ich ein Datenmodell, welches einen bestimmten Bereich puffert daher konstant in der Speicherbelegung arbeitet, egal wie groß die Eingabedatei ist. Eines der Probleme hat André schon angesprochen. Nehmen wir (übertrieben) an, die Tabelle hat eine Köhe von 10000000000000000000 Pixeln und man bewegt den Slider um 1 Pixel, dann springt die Scrollpane um 20 Seiten weiter. Das ignoriere ich jetzt aber erstmal. Viel gravierender wäre das Problem, dass man irgendwann aus den so gelieferten Koordinaten nicht mehr die Zeile bestimmen könnte weil die Koordinaten den Integer-Bereich verlassen.

Daher überlege ich ernsthaft waghalsige Konstrukte zu ersinnen aber davor habe ich noch Angst ;)
 

xcr

Mitglied
Hey Leute, ich hoffe alle sind gut ins neue Jahr gekommen.

Mittlerweile bin ich das Problem im Übrigen los. Ich habe nun eine sogenannte OffsetTabelle, welcher eine maximale Zeilenanzahl X übergeben wird. Ist die eigentliche Anzahl der Zeilen größer als X, so werden mehrere Seiten emuliert. Wird etwa die maximale Zeilenanzahl 10 festgelegt und eine Tabelle hätte 25 Zeilen, dann resultieren daraus 3 kleine Tabellen (10, 10 und 5 Zeilen). Gründsätzlich ist es die selbe Tabelle (dasselbe Objekt), betrachtet man jedoch die 2. Seite, dann würde in der ersten Zeile die wahre Zeile #11 angezeigt.

Eigentlich nicht sehr kompliziert und ich finde es sehr übersichtlich.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I JOptionPane maximale Zeichen einstellen AWT, Swing, JavaFX & SWT 2
E TextArea - Maximale Zeichenanzahl AWT, Swing, JavaFX & SWT 2
S Swing jFrame auf maximale Größe setzten AWT, Swing, JavaFX & SWT 7
G LayoutManager BorderLayout WEST Bereich auf maximale Größe beschränken AWT, Swing, JavaFX & SWT 19
T Maximale Länge eines JButtons AWT, Swing, JavaFX & SWT 5
S Swing Swing maximale Fenstergrösse ermitteln AWT, Swing, JavaFX & SWT 5
B Swing maximale quadratische Größe AWT, Swing, JavaFX & SWT 27
G BufferedImage und jpg --> maximale Qualität AWT, Swing, JavaFX & SWT 9
M Komponenten auf maximale Größe zwingen AWT, Swing, JavaFX & SWT 2
G Maximale Größe JFrame AWT, Swing, JavaFX & SWT 2
D Maximale Anzahle der Zeilen in JTextArea AWT, Swing, JavaFX & SWT 5
A Swing Logikaufgabe: Zeilenanzahl einer JTable mit 3d String dynamisch anpassen AWT, Swing, JavaFX & SWT 2
Ollek JTextArea - Feste Zeilenanzahl(8 Zeilen) AWT, Swing, JavaFX & SWT 3
W JTable mit fester Zeilenanzahl ausfüllend in JScrollPane integrieren AWT, Swing, JavaFX & SWT 7
N JTable Zellenhöhe an Zeilenanzahl anpassen AWT, Swing, JavaFX & SWT 3
K JTable +TableModel --> Anpassung der Tabellengröße (Zeilenanzahl) AWT, Swing, JavaFX & SWT 3
D jTable mit variabler Zeilenanzahl AWT, Swing, JavaFX & SWT 5
S JTable feste Zeilenanzahl?! AWT, Swing, JavaFX & SWT 4
MiMa Optimieren einer Methode zum Zentrieren von Fenstern AWT, Swing, JavaFX & SWT 0
T VerifyListener - Ersetzen einer 0 AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
H JavaFX Timeline II: Verschieben einer ImageView AWT, Swing, JavaFX & SWT 16
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
L Swing TextPanel Schrift untereinander und auf einer Höhe AWT, Swing, JavaFX & SWT 3
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
Ernesto95 JavaFX Return Value nach Beendigung einer Animation AWT, Swing, JavaFX & SWT 15
melaniemueller Wortliste in einer Datei ablegen AWT, Swing, JavaFX & SWT 12
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
U Was genau ist das Objekt einer affinentransformation? AWT, Swing, JavaFX & SWT 1
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
mac2010 JavaFX Einbindung einer Karte AWT, Swing, JavaFX & SWT 1
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
W Aufrufen einer bestimmten Scene mit if-Bedingung AWT, Swing, JavaFX & SWT 4
J Ablaufsteuerung/Anleitung machen mit JDialog und einer Zustandsmaschine AWT, Swing, JavaFX & SWT 1
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
S JavaFX - mit Listener Veränderungen in einer TableView abhören AWT, Swing, JavaFX & SWT 3
missy72 JavaFX ObservableList in einer ArrayList speichern. AWT, Swing, JavaFX & SWT 7
HoT Sortieren von ein paar Zeilen in einer Tabelle, aber nicht die ganze Tabelle AWT, Swing, JavaFX & SWT 3
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
N Einer TextArea ein ScrollPane hinzufügen AWT, Swing, JavaFX & SWT 8
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
G Verknüpfung einer pdf Datei AWT, Swing, JavaFX & SWT 2
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
F jTree und das Model aus einer eigenen Klasse AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
N Wie kann ich zwei Grafiken in einer Oberfläche anzeigen lassen? AWT, Swing, JavaFX & SWT 8
@SupressWarnings() JavaFX Auf den Controller einer ListCell zugreifen AWT, Swing, JavaFX & SWT 4
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
H 3 verschiedene Nachrichten in einer FXML View die Infos kommen aus DB AWT, Swing, JavaFX & SWT 4
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
S Java GUI durch variable Größe einer Map anpassen AWT, Swing, JavaFX & SWT 3
B Textfelder in einer ListView ausgeben AWT, Swing, JavaFX & SWT 13
J Searchfunktion auf einer MS Access Datenbank AWT, Swing, JavaFX & SWT 7
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
M Inhalte einer FlowPane AWT, Swing, JavaFX & SWT 4
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
E Prinzip: wie man Ereignisse in einer GUI verarbeit. Frage zum Design? AWT, Swing, JavaFX & SWT 10
FRI3ND JavaFX: Wie kann ich einer Scene Argumente übergeben? AWT, Swing, JavaFX & SWT 14
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
G JavaFX JavaFX-Dialog aus einer Nicht-JavaFX-Anwendung heraus AWT, Swing, JavaFX & SWT 1
1 Swing Progressbar benutzen um Fortschritt einer Methode anzuzeigen AWT, Swing, JavaFX & SWT 4
K JavaFX ViewTable mit einer LinkedList befüllen AWT, Swing, JavaFX & SWT 3
L CardLayout in einer Klasse? AWT, Swing, JavaFX & SWT 2
J Compiler in der JavaFX stop() Methode warten lassen bist eine Aktion in einer anderen Scene gemacht AWT, Swing, JavaFX & SWT 5
D Java FX Image in einer Webanwendung annotieren und den Bereich ausschneiden AWT, Swing, JavaFX & SWT 0
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing Ausführung einer SwingWorker Klasse stoppen AWT, Swing, JavaFX & SWT 4
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
xYurisha Aus einer Gui Buttons, Label und ProgessBars entfernen AWT, Swing, JavaFX & SWT 4
MiMa Selektion aus einer ListView AWT, Swing, JavaFX & SWT 5
J 2D-Grafik Background einer Jpanel Klasse ändern AWT, Swing, JavaFX & SWT 1
J JFram Location aus Konstruktor einer anderen Klasse auslesen AWT, Swing, JavaFX & SWT 10
L Methode zum Füllen einer ComboBox AWT, Swing, JavaFX & SWT 4
J Suche nach einer horizontal aufklappbaren Toolbar AWT, Swing, JavaFX & SWT 1
P Variable einer Eingabe in anderes Textfeld schreiben AWT, Swing, JavaFX & SWT 7
D JavaFX Einbinden einer .fxml AWT, Swing, JavaFX & SWT 1
B Zeile einer Tabelle selektieren AWT, Swing, JavaFX & SWT 1
A Prüfung einer Eingabe auf Gleitkommazahl AWT, Swing, JavaFX & SWT 5
J Suchmaschine einer Datenbank AWT, Swing, JavaFX & SWT 5
Kanda Sorata Inhalt einer .txt Datei einlesen und in ein Label einfügen (JavaFX) AWT, Swing, JavaFX & SWT 2
A Swing JLabels in einer ForEach Schleife an den JPanel anheften (UNO Netzwerkspiel) AWT, Swing, JavaFX & SWT 1
R Update eines Labels bei Methodenaufruf einer anderen Klasse AWT, Swing, JavaFX & SWT 9
M Auswahl aus einer ListView AWT, Swing, JavaFX & SWT 3
J JavaFX - Felder (Label) in einer ForSchleife bearbeiten AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben