Witam. Nie jestem dobra z programowania, ale staram się, jednak mam problem z sortowaniem danych w tabeli i razem z kolegą kompletnie nie wiemy o co chodzi. Nie wyrzuca żadnych błędów ale jednak nie sortuje. Proszę o pomoc. W razie czego mogę podesłać więcej fragmentów kodu.
import java.text.*;
import java.util.*;
import javax.swing.table.DefaultTableModel;
import com.thoughtworks.xstream.XStream;
import java.io.*;
public class Logika {
static double cen;
static Date data;
static Short czas;
static int ocena;
static int nr;
static int n=0;
static DateFormat format=new SimpleDateFormat("yyyy");
public static void main(String[] args) throws ParseException {
Grafika g=new Grafika();
if(args.length==0)
g.setVisible(true);
if(args.length>0) {
g.setVisible(false);
if(args[0].equals("notsort")) {
System.out.println(Dane.lista);
}
if(args[1].equals("nazwasort")) {
nazwasort();
System.out.println(Dane.lista);
}
if(args[1].equals("censort")) {
censort();
System.out.println(Dane.lista);
}
if(args[1].equals("datasort")) {
datasort();
System.out.println(Dane.lista);
}
if(args[1].equals("czassort")) {
czassort();
System.out.println(Dane.lista);
}
}
}
/**
* Sortowanie według tytułu gry
*/
public static void nazwasort() {
KompN k=new KompN();
Collections.sort(Dane.lista, k);
}
/**
* Sortowanie według ceny gry
*/
public static void censort() {
KompC k=new KompC();
Collections.sort(Dane.lista, k);
}
/**
* Sortowanie według daty premiery
*/
public static void datasort() {
KompD k=new KompD();
Collections.sort(Dane.lista, k);
}
/**
* Sortowanie według czasu gry
*/
public static void czassort() {
KompJ k=new KompJ();
Collections.sort(Dane.lista, k);
}
public static void dodawanieDanych() throws ParseException{
cen=Double.parseDouble(Grafika.cen);
data=format.parse(Grafika.data);
czas=Short.parseShort(Grafika.czas);
ocena=Integer.parseInt(Grafika.ocena);
//wypisanie danych w tabeli
Obiekt_Dane od=new Obiekt_Dane(ocena, Grafika.wydawca);
Dane.lista.add(new Dane(Grafika.nazwa, cen, data, czas, od));
}
public static void modyfikacjaDanych() throws ParseException{
cen=Double.parseDouble(Grafika.cen);
data=format.parse(Grafika.data);
czas=Short.parseShort(Grafika.czas);
ocena=Integer.parseInt(Grafika.ocena);
nr=Integer.parseInt(Grafika.nr);
Obiekt_Dane od=new Obiekt_Dane(ocena, Grafika.wydawca);
Dane d=new Dane(Grafika.nazwa, cen, data, czas, od);
Dane.lista.set(nr-1, d);
}
public static void usuwanieDanych() {
nr=Integer.parseInt(Grafika.nr);
Dane.lista.remove(nr-1);
}
public static void zapisDanych() {
try {
XStream xstream=new XStream();
String tekst=xstream.toXML(Dane.lista);
File xml=new File(Grafika.plik);
xml.createNewFile();
FileWriter fw=new FileWriter(xml);
fw.write(tekst);
fw.close();
}
catch(IOException e){
System.out.println(e.getMessage());
}
}
public static void otworzXML() {
XStream xstream=new XStream();
try {
Dane.lista.addAll((Collection<Dane>)xstream.fromXML(new FileReader(Grafika.plik)));
Dane d=Dane.lista.get(Dane.lista.size()-1);
}
catch (FileNotFoundException e) {
System.out.println(e.getMessage());
}
}
}
Fragment kodu z klasy Grafika
if(z==rdbtnNazwa) {
Logika.nazwasort();
StatusBar.setText("Posortowano według Nazwy.");
}
if(z==rdbtnPremiera) {
Logika.datasort();
StatusBar.setText("Posortowano według Daty Premiery.");
}
if(z==rdbtnCzasGry) {
Logika.censort();
StatusBar.setText("Posortowano według Ceny.");
}
if(z==rdbtnCena) {
Logika.czassort();
StatusBar.setText("Posortowano według Czasu.");
}
public static void nazwasort() {
KompN k=new KompN();
Collections.sort(Dane.lista, k);
}
public static void censort() {
KompC k=new KompC();
Collections.sort(Dane.lista, k);
}
public static void datasort() {
KompD k=new KompD();
Collections.sort(Dane.lista, k);
}
public static void czassort() {
KompJ k=new KompJ();
Collections.sort(Dane.lista, k);
}
KompN wygląda identycznie jak KompC, KompD, KompJ
import java.util.Comparator;
public class KompN implements Comparator<Dane> {
public int compare(Dane dane1, Dane dane2) {
if(dane1.getnazwa().compareTo(dane2.getnazwa())<0)
return -1;
if(dane1.getnazwa().compareTo(dane2.getnazwa())>0)
return 1;
else
return 0;
}
}
Z góry dzięki za poświęcenie chwilki.
Pozdrawiam