Sortieren und Filtern von Tabellen

Boboline

Mitglied
Hallo :)
Wir müssen für die Schule ein Programm erstellen, das quasi einen DVD-Verleih simuliert. Wir haben allerdings noch nicht verstanden, wie man die Tabelle, in der die DVDs sich befinden, sortieren oder filtern kann. Also z.B. nach Erscheinungsjahr etc. Wir haben dazu auch schon viel im Internet gesucht, aber so wirklich schlau sind wir daraus geworden. Hier ist mal das, was wir bisher haben:
Java:
import javax.swing.*;

public class Tabelle
{
  public static void main( String[] args )
  {
    String[][] rowData = {
    { "Interstellar", "2014", "Science-Fiction", "12" }, { "Who Am I", "2014", "Thriller" , "12" }, { "Ruhet in Frieden", "2014", "Action", "16" },
    { "Nightcrawler", "2014", "Thriller", "16" }, { "Ich darf nicht schlafen", "2014", "Thriller", "12" } ,{ "Dritte Person ", "2013", "Drama", "12" },
    { "Automata", "2014", "Science-Fiction", "12" }, { "Paddington", "2014", "Kids", "0" },
    { "Outcast", "2014", "Action", "16" }, { "The Homesman", "2014", "Western", "16" },
    { "Maze Runner", "2014", "Science-Fiction", "12" }, { "The Cut", "2014", "Abenteuer", "12" }, { "The Mummy Resurrected", "2014", "Horror", "16" },
    { "Am Sonntag bist du tot", "2014", "Krimi", "16" }, { "Die Boxtrolls", "2014", "Animation", "6" } ,{ "In the Blood ", "2014", "Action", "18" },
    { "Diary of the Dead", "2007", "Horror", "18" }, { "Schwarze Schafe", "2006", "Komödie", "18" },
    { "Geliebte Clara", "2008", "Musik", "6" }, { "Zeiten ändern dich", "2009", "Musik", "12" },
    { "Fit for Fun - FatburnerWorkout", "2008", "Ratgeber", "0" }, { "Fitness für faule Säcke", "2003", "Ratgeber", "0" }, { "Hin und Weg", "2014", "Drama", "12" },
    { "Love, Rosie", "2014", "Lovestory", "6" }, { "Die Biene Maja - Der Kinofilm", "2014", "Kids", "0" } ,{ "Gravity", "2013", "Science-Fiction", "12" },
    { "Die Eiskönigin - Völlig unverfroren", "2013", "Kids", "0" }, { "Non-Stop", "2014", "Thriller", "12" },
    { "Free Birds", "2013", "Animation", "6" }, { "Das Salz der Erde", "2014", "Dokumentation", "12" },
    { "Sarkar", "2005", "Bollywood", "16" }, { "Scarlett", "1994", "Lovestory", "12" }, { "Fack ju Göhte", "2013", "Komödie", "12" },
    { "Faszination Indien", "2010", "Dokumentation", "0" }, { "Hornblower", "1998", "Kriegsfilm", "12" } ,{ "American Gothic", "1995", "Serie", "16" },
    { "American Heart", "1992", "Drama", "12" }, { "Das Schloss im Himmel", "1986", "Anime", "6" },
    { "Der Einzelgänger", "1981", "Krimi", "18" }, { "Das fliegende Auge", "1983", "Action", "12" },
    { "Christopher Columbus", "1985", "Serie", "12" }, { "Wahlverwandtschaften", "1974", "Drama", "6" }, { "Kohlpiesels Töchter", "1979", "Komödie", "16" },
    { "Zwischen zwölf und drei", "1975", "Western", "12" }, { "Die Ritter der Kokosnuss", "1975", "Abenteuer", "12" } ,{ "Moses", "1975", "Drama", "12" }, 
    { "Du liebst mich, du liebst mich nicht", "2008", "Bollywood", "6" }, { "Reise ins Ehebett", "1966", "Komödie", "0" },
    { "Der gewisse Kniff", "1965", "Komödie", "0" }, { "Superhirn in Tennisschuhen", "1969", "Komödie", "6" },
    { "Meines Vaters Pferde", "1953", "Drama", "6" }, { "Geheimnis zweier Ozeane", "1956", "Science-Fiction", "6" },
    { "Wunder der Prärie", "1955", "Dokumentation", "0" }};


 
     
    String[] columnNames =  {
      "Filmtitel", "Erscheinungsjahr", "Genre", "FSK"
    };


    JFrame f = new JFrame();
    f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );


    JTable table = new JTable( rowData, columnNames );
    f.add( new JScrollPane( table ) );


    f.pack();
    f.setVisible( true );
  } 
}
Das die Tabelle erstellt wird funktioniert. Aber wie kriegen wir das jetzt nach verschiedenen Kategorien gefiltert/sortiert?

Danke schonmal und liebe Grüße!
 

Chloroplast

Bekanntes Mitglied
Also zum sortieren gibt es mehrere Möglichkeiten. Ich bin der meinung das java das zwar auch selber kann, allerdings weiß ich gerade nicht wie.
wenns um ein schulprojekt geht dann reicht aber auch ein langsamerer ansatz. guckt euch mal bubblesort an, ist imho die einfachste art etwas zu sortieren.

Ebenfalls wäre es hilfreich in dem eigentlichen tabellen Array nicht unbedingt die werte selber zu speichern, sondern DVD objekte zu speichern: und diese enthalten dann sowas wie den Titel, das Erscheinungsjahr, Genre und FSK. hat den vorteil dass sich zb. die FSK-freigaben besser vergleichen lassen und man einen filter FSK16 und darunter setzen könnte, nur als beispiel.

Das Filtern lässt sich generell so darstellen dass man ein neues Array erzeugt und dann nur die Werte überträgt die die Bedingungen erfüllen.

Das erstmal nur als ansatz. Bei fragen dazu einfach raus damit, aber versuchts erstmal selber :)

mfG, Chloroplast
 

Boboline

Mitglied
Danke für eure Antworten!
Wir haben jetzt schon ewig rumprobiert, aber so wirklich funktioniert hat es noch nicht.

https://docs.oracle.com/javase/tutorial/uiswing/components/table.html
Da stehen schon Beispiele, die für die meisten Standard-Anwendungen reichen sollten.

Sortierung ist mit einer Zeile Code machbar und Filtern mit 4 Zeilen Code.
Da kommt bei uns immer schon bei set.AutoRowSorter(true) eine Fehlermeldung ("identifier expected" vor der Klammer) Was ist denn da das Problem?

Chloroplast hat gesagt.:
guckt euch mal bubblesort an, ist imho die einfachste art etwas zu sortieren.
Mit Bubblesort haben wir es auch probiert, allerdings sortiert er bei uns dann nur die Zahlen, nicht in Kombination mit den zugehörigen DVD-Namen. Ist das immer so oder kann man das noch ergänzen?

LG
 

Enceladus271

Bekanntes Mitglied
Es heißt auch: table.setAutoCreateRowSorter( true );
Aber zum filtern braucht ihr sowieso einen eigenen RowSorter:
Java:
TableRowSorter<TableModel> tableRowSorter = new TableRowSorter<TableModel>( model );
table.setRowSorter( tableRowSorter );

Da nur Strings und Integers in der Tabelle sind kann die Tabelle damit schon automatisch richtig sortiert werden. Ihr müsst nur darauf achten, dass bei euerem TableModel die Methode getColumnClass überschrieben wird und die richtigen Werte zurück liefert. Sonst werden die Integers als Strings (also lexikographisch) sortiert.

Den tableRowSorter kann man dann auch zum Filtern verwenden. Wie das geht steht im Link den ich gepostet habe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Collection sortieren/ filtern Java Basics - Anfänger-Themen 7
S LinkedList<String[]> filtern und sortieren Java Basics - Anfänger-Themen 9
D Map<String, Integer> sortieren und der reinfolge nach die Glieder abfragen Java Basics - Anfänger-Themen 3
J HashSet mit Comparable sortieren Java Basics - Anfänger-Themen 13
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
H Liste nach String-Länge sortieren Java Basics - Anfänger-Themen 1
O Sortieren mit Insertion Sort Java Basics - Anfänger-Themen 3
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Jambolo Karten sortieren nach Rang und Farbe Java Basics - Anfänger-Themen 5
rosima26 Java nach letzter Ziffer sortieren Java Basics - Anfänger-Themen 19
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
K verschiedene Eingaben sortieren Java Basics - Anfänger-Themen 6
G zweidimensionales int Array sortieren Java Basics - Anfänger-Themen 57
K Java sortieren. Java Basics - Anfänger-Themen 7
D Array Elemente sortieren in aufsteigender Reihenfolge Java Basics - Anfänger-Themen 10
J Tabelle Sortieren Java Basics - Anfänger-Themen 48
rafi072001 Sortieren einer HashMap nach Values Java Basics - Anfänger-Themen 2
L Sortieren Java Basics - Anfänger-Themen 1
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
C ArrayList sortieren nach bestimmten Buchstaben in den Wörtern Java Basics - Anfänger-Themen 13
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
C Sortieren einer ArrayList Java Basics - Anfänger-Themen 2
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
java3690 eine liste sortieren Java Basics - Anfänger-Themen 12
DorFey Sortieren eines mehrdimensionalen Arrays Java Basics - Anfänger-Themen 8
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
W Personen sortieren mit Comparator Java Basics - Anfänger-Themen 9
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
B HashMap alphabetisch sortieren Java Basics - Anfänger-Themen 2
S Streams - Abfrage absteigend sortieren Java Basics - Anfänger-Themen 11
V Collections ArrayList mit Comparator sortieren Java Basics - Anfänger-Themen 16
V Collections int Werte in einer Liste sortieren Java Basics - Anfänger-Themen 23
L Array sortieren Java Basics - Anfänger-Themen 4
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
T Java: Array monat absteigend sortieren? Java Basics - Anfänger-Themen 1
B Liste sortieren? Java Basics - Anfänger-Themen 4
P Array Sortieren mit boolean? Java Basics - Anfänger-Themen 33
scratchy1 Array sortieren und dann String-Repräsentation ausgeben Java Basics - Anfänger-Themen 2
O Arrays sortieren in einer Methode Java Basics - Anfänger-Themen 2
E Methoden 2 Arrays sortieren (MergeSort) Java Basics - Anfänger-Themen 3
B Suchen und sortieren Java Basics - Anfänger-Themen 10
F Zahlen im Feld sortieren + Unterprogramm Java Basics - Anfänger-Themen 4
O Zweidimensional Array sortieren Java Basics - Anfänger-Themen 14
J Liste,Queue,Stack sortieren Java Basics - Anfänger-Themen 2
CptK Variablen Teile eines Arrays zufällig sortieren Java Basics - Anfänger-Themen 7
K Methoden Array[][] sortieren Java Basics - Anfänger-Themen 30
CptK Datentypen Integer ArrayList sortieren Java Basics - Anfänger-Themen 2
E ArrayList sortieren Java Basics - Anfänger-Themen 16
L Methode zum sortieren Java Basics - Anfänger-Themen 1
L Methode zum sortieren Java Basics - Anfänger-Themen 1
B Sortieren mit Iterator Java Basics - Anfänger-Themen 4
B Wie kann ich die Buchstaben sortieren nach der Höhe der Zahlen Java Basics - Anfänger-Themen 14
A Sortieren ausgerechneter Werte aus einer TXT Datei Java Basics - Anfänger-Themen 8
E LMC (Assembler) Sortieren von 3 Zahlen Java Basics - Anfänger-Themen 4
J String, Int und double Array sortieren Java Basics - Anfänger-Themen 16
F Liste nach einer Variablen sortieren Java Basics - Anfänger-Themen 6
A Array sortieren Java Basics - Anfänger-Themen 1
N StringArray alphabetisch sortieren Java Basics - Anfänger-Themen 4
Tommy135 Erste Schritte JavaDoc Sortieren Java Basics - Anfänger-Themen 5
R Winkel berechnen bzw. Geraden sortieren Java Basics - Anfänger-Themen 33
L (Integer) Liste nach aufsteigender Summe der Ziffern sortieren (mit Bedingung) Java Basics - Anfänger-Themen 8
F HashMap sortieren <String, Long> Java Basics - Anfänger-Themen 3
D Arraylisten sortieren bitte um Hilfe Java Basics - Anfänger-Themen 4
informatikschüler21 String im Array sortieren Java Basics - Anfänger-Themen 4
U Methoden Zweidimensionales Array mit Arrays.sort sortieren? Java Basics - Anfänger-Themen 22
M Arrays sortieren und kleinster Abstand Java Basics - Anfänger-Themen 3
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
N TreeMap alphabetisch sortieren? Java Basics - Anfänger-Themen 3
I <List> sortieren Java Basics - Anfänger-Themen 2
F Interface Nach mehreren Kriterien sortieren Java Basics - Anfänger-Themen 2
R Objekte Vergleichen und Sortieren Java Basics - Anfänger-Themen 3
I Sortieren nach Priorität Java Basics - Anfänger-Themen 3
S List<T<X,Y> sortieren Java Basics - Anfänger-Themen 5
W Array sortieren Java Basics - Anfänger-Themen 3
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
Alex/89 Werte einer .txt Datei sortieren Java Basics - Anfänger-Themen 8
N Bubble Sort sortieren mit Int Werte Java Basics - Anfänger-Themen 8
C Methoden Einfach verkette Liste - int Werte aufsteigend sortieren Java Basics - Anfänger-Themen 1
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
S array sortieren Java Basics - Anfänger-Themen 7
D Array mit Zufallszahlen, dann sortieren: Hilfe gesucht! Java Basics - Anfänger-Themen 1
D Methoden int-Array absteigend sortieren Java Basics - Anfänger-Themen 8
C Chars in einem String alphabetisch sortieren Java Basics - Anfänger-Themen 1
C OOP array Sortieren ohne den sort Befehl Java Basics - Anfänger-Themen 10
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
J Sortieren Java Basics - Anfänger-Themen 21
O Erste Schritte TreeMap nach Value sortieren Java Basics - Anfänger-Themen 2
K Collections Sortieren nach zweiter Spalte in JTable Java Basics - Anfänger-Themen 18
H Strings vergleichen & sortieren Java Basics - Anfänger-Themen 20
J Ungewolltes Sortieren eines Arrays Java Basics - Anfänger-Themen 4
T Collections Sortieren von Automodellen (v.a. BMW und Mercedes) Java Basics - Anfänger-Themen 3
P Liste sortieren verschiedener generischer Typen Java Basics - Anfänger-Themen 4
D Erste Schritte array aufsteigend sortieren und ausgeben Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben