import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import javax.swing.*;
import javax.swing.border.*;
import java.util.Iterator;
import java.util.List;
import java.util.Arrays;
import java.io.File;
/**
* In der Klasse BildFlaeche wird die Grafische Benutzeroberfläche generiert
* die dem Nutzer dazu dienen soll die Liste der Studenten nach einem bestimmten,
* auszuwählenden Kriterium zu sortieren.
*
* @author authorFP
* @version 27.11.2011
*/
public class Kurs
{
private Student[] studentListe;
private static final String VERSION = "Version 1.0";
private JFrame fenster;
private JLabel dateinameLabel;
private JLabel statusLabel;
private JButton firstButton, secondButton, thirdButton, fourthButton;
private JPanel workspace;
/**
* Main-Methode, startet das Programm mit dem Befehl zur Ausführung des Konstruktors.
*/
public static void main (String[] args)
{
Kurs kurs = new Kurs();
}
/**
* Konstruktor, erzeugt einen Array, füllt diesen mit den Studenten ab und gibt den Array unsortiert aus.
*/
public Kurs()
{
studentListe = new Student[5];// erzeugt einen neuen Array mit 5 Positionen
// die Studenten werden erzeugt und dem Array angefügt
studentListe[0] = new Student();
studentListe[0].setnummer(1);
studentListe[0].setalter(12);
studentListe[0].setdurchschnitt(4.3);
studentListe[0].setname("Walterli Tell junjun.");
studentListe[1] = new Student();
studentListe[1].setnummer(2);
studentListe[1].setalter(467);
studentListe[1].setdurchschnitt(2.9);
studentListe[1].setname("Maria Stuart");
studentListe[2] = new Student();
studentListe[2].setnummer(3);
studentListe[2].setalter(9);
studentListe[2].setdurchschnitt(5.9);
studentListe[2].setname("Fritzli Schneider");
studentListe[3] = new Student();
studentListe[3].setnummer(4);
studentListe[3].setalter(2296);
studentListe[3].setdurchschnitt(6.0);
studentListe[3].setname("Archimedes Syrakus");
studentListe[4] = new Student();
studentListe[4].setnummer(5);
studentListe[4].setalter(20);
studentListe[4].setdurchschnitt(4.7);
studentListe[4].setname("Greengrey vonRotz");
fensterErzeugen();
}
/**
* Methode listeAusgebenUnsortiert gibt die Liste unsortiert auf der Konsole aus.
*/
public void listeAusgebenUnsortiert()
{
System.out.println("Liste der Studenten unsortiert: ");// die Liste der Studenten wird ausgegeben, unsortiert
for(int i=0; i<studentListe.length; i++)
{
System.out.println("Studentennummer: " + studentListe[i].getnummer() + ", Name: " + studentListe[i].getname() +
", Alter: " + studentListe[i].getalter() + ", Notendurchschnitt: " + studentListe[i].getdurchschnitt());
}
System.out.println("Die gesamte Teilnehmerzahl dieses Kurses beläuft sich auf " + studentListe.length + " Studenten.");// Ausgabe der gesamten Teilnehmerzahl
System.out.println("--------------------------------------------------------------------------------");
}
/**
* Methode listeAusgebenSortiertAlter gibt den Anstoss zum sortieren der Liste nach Alter
* und gibt diese auf der Konsole aus.
*/
public void listeAusgebenSortiertAlter()
{
Arrays.sort(studentListe, new alterComparator()); // Gibt den Anstoss zum sortieren nach Alter.
System.out.println("Studentenliste sortiert nach Alter:");// Gibt die Liste sortiert nach Alter aus.
for(int i=0; i < studentListe.length; i++)
{
System.out.println("Alter: " + studentListe[i].getalter() + ", Name: " + studentListe[i].getname() + ", Notendurchschnitt: " +
studentListe[i].getdurchschnitt() + ", Studentennummer: " + studentListe[i].getnummer());
}
System.out.println("--------------------------------------------------------------------------------");
}
/**
* Methode listeAusgebenSortiertName gibt den Anstoss zum sortieren der Liste nach Name
* und gibt diese auf der Konsole aus.
*/
public void listeAusgebenSortiertName()
{
Arrays.sort(studentListe, new nameComparator()); // Gibt den Anstoss zum sortieren nach Name.
System.out.println("Studentenliste sortiert nach Name:");// Gibt die Liste sortiert nach Name aus.
for(int i=0; i < studentListe.length; i++)
{
System.out.println("Name: " + studentListe[i].getname() + ", Alter: " + studentListe[i].getalter() + ", Notendurchschnitt: " +
studentListe[i].getdurchschnitt() + ", Studentennummer: " + studentListe[i].getnummer());
}
System.out.println("--------------------------------------------------------------------------------");
}
/**
* Methode listeAusgebenSortiertDurchschnitt gibt den Anstoss zum sortieren der Liste nach Notendurchschnitt
* und gibt diese auf der Konsole aus.
*/
public void listeAusgebenSortiertDurchschnitt()
{
Arrays.sort(studentListe, new durchschnittComparator()); // Gibt den Anstoss zum sortieren nach Durchschnittsnote.
System.out.println("Studentenliste sortiert nach Notendurchschnitt:");// Gibt die Liste sortiert nach Durchschnittsnote aus.
for(int i=0; i < studentListe.length; i++)
{
System.out.println("Notendurchschnitt: " + studentListe[i].getdurchschnitt() + ", Alter: " + studentListe[i].getalter() + ", Name: " +
studentListe[i].getname() + ", Studentennummer: " + studentListe[i].getnummer());
}
System.out.println("--------------------------------------------------------------------------------");
}
/**
* An example of a method - replace this comment with your own
*
* @param y a sample parameter for a method
* @return the sum of x and y
*/
private void fensterErzeugen()
{
// put your code here
fenster = new JFrame("Studenten Sortierprogramm");
JPanel contentPane = (JPanel)fenster.getContentPane();
contentPane.setBorder(new EmptyBorder(6, 6, 6, 6));
menuezeileErzeugen(fenster);
contentPane.setLayout(new BorderLayout(6, 6));
JTextArea workspace = new JTextArea(15,60);
workspace.setLineWrap(true);
workspace.setBorder(new EtchedBorder());
workspace.setWrapStyleWord(true);
workspace.setTabSize(5);
workspace.setText("");
contentPane.add(workspace, BorderLayout.CENTER);
dateinameLabel = new JLabel();
contentPane.add(dateinameLabel, BorderLayout.NORTH);
JPanel werkzeugleiste = new JPanel();
werkzeugleiste.setLayout(new GridLayout(0, 1));
firstButton = new JButton("Ursprungszustand");
firstButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { listeAusgebenUnsortiert(); }
});
werkzeugleiste.add(firstButton);
secondButton = new JButton("Sortieren nach Alter");
secondButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { listeAusgebenSortiertAlter(); }
});
werkzeugleiste.add(secondButton);
thirdButton = new JButton("Sortieren nach Name");
thirdButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { listeAusgebenSortiertName(); }
});
werkzeugleiste.add(thirdButton);
fourthButton = new JButton("Sortieren nach Note");
fourthButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { listeAusgebenSortiertDurchschnitt(); }
});
werkzeugleiste.add(fourthButton);
JPanel flow = new JPanel();
flow.add(werkzeugleiste);
contentPane.add(flow, BorderLayout.WEST);
fenster.pack();
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
fenster.setLocation(d.width/2 - fenster.getWidth()/2, d.height/2 - fenster.getHeight()/2);
fenster.setVisible(true);
}
private void menuezeileErzeugen(JFrame fenster)
{
final int SHORTCUT_MASK = Toolkit.getDefaultToolkit().getMenuShortcutKeyMask();
JMenuBar menuezeile = new JMenuBar();
fenster.setJMenuBar(menuezeile);
JMenu menue;
JMenuItem eintrag;
menue = new JMenu("Datei");
menuezeile.add(menue);
eintrag = new JMenuItem("Öffnen...");
menue.add(eintrag);
eintrag = new JMenuItem("Beenden");
menue.add(eintrag);
menue = new JMenu("Bearbeiten");
menuezeile.add(menue);
eintrag = new JMenuItem("sortieren");
menue.add(eintrag);
menue = new JMenu("?");
menuezeile.add(menue);
eintrag = new JMenuItem("Hilfe");
menue.add(eintrag);
eintrag = new JMenuItem("Programminformationen");
menue.add(eintrag);
}
}