Warum erstellt und liesst er nicht die Objekte?

Status
Nicht offen für weitere Antworten.
L

Lalle84

Gast
Code:
import java.io.*;
import java.util.*;

public class Manager implements Serializable
 {
   
	private static LinkedList<GraphicObject> elements = new LinkedList<GraphicObject>();
	
	public LinkedList<GraphicObject> getElements() {
		return elements;
	}

	public void setElements(LinkedList<GraphicObject> elements) 
	{
		Manager.elements = elements;
	}

   private static int idcount;
    
    public static void setIdcount (int idcount)
   {
         Manager.idcount = idcount;
   }

   public int getIdcount ()
   {
      return idcount;
   }
   
   
   public int getNextId ()
   {
	   return Manager.idcount++;
   } 
   
   public int addNewLine (int xstart, int ystart, int zstart, int xend, int yend, int zend, String name)
   {
	   Point start = new Point(xstart, ystart, zstart, this.getNextId(), "Starting point");
	   Point end = new Point(xend, yend, zend, this.getNextId(),"Endpoint");
	   Line newline = new Line(start, end, this.getNextId(), name);
	   this.getElements().add(newline);
	   System.out.println("Linie "+name+" erfolgreich hinzugefügt. \n");
	   return newline.getId();
   }
   
   public int addNewPoint (int x, int y, int z, String name)
   {
	   Point newpoint = new Point(x, y, z, this.getNextId(), name);
	   this.getElements().add(newpoint);
	   System.out.println("Punkt "+name+" erfolgreich hinzugefügt. \n");
	   return newpoint.getId();
   } 
   
   public int addNewSphere (int pmidx, int pmidy, int pmidz, int radius, String color, String name)
   {
	   Point middle = new Point(pmidx, pmidy, pmidz, this.getNextId(), "middle");
	   Sphere newsphere = new Sphere(middle, radius, color, this.getNextId(), name);
	   this.getElements().add(newsphere);
	   System.out.println("Kugel "+name+" erfolgreich hinzugefügt. \n");
	   return newsphere.getId();
   }
   
   public int addNewTriangle (int x1, int y1, int z1, int x2, int y2, int z2, int x3, int y3, int z3, String name, String color)
   {
	   Point xp = new Point(x1, y1, z1, this.getNextId(), "Point 1");
	   Point yp = new Point(x2, y2, z2, this.getNextId(), "Point 2");
	   Point zp = new Point(x3, y3, z3, this.getNextId(), "Point 3");
	   Triangle newtriangle = new Triangle(xp, yp, zp, color, this.getNextId(), name);
	   this.getElements().add(newtriangle);
	   System.out.println("Dreieck "+name+" erfolgreich hinzugefügt. \n");
	   return newtriangle.getId();
   } 
   
   public int delElement (int id)
   {
	   Iterator i = this.getElements().iterator();
	   while(i.hasNext())
	   {
		   GraphicObject o = (GraphicObject) i.next();
		   if(o.getId() == id)
		   {
			   i.remove();
			   System.out.println("Element mit der ID: "+id+" gelöscht.");
			   return 1;
		   }
	   }
	   System.out.println("Löschen nicht möglich. Die ID ist nicht vergeben.");
	   return 0;
   }
   
   public LinkedList<GraphicObject> filterElement (String type)
   {
	   LinkedList<GraphicObject> filterlist = new LinkedList<GraphicObject>();
	   Iterator i = this.getElements().iterator();
	   while(i.hasNext())
	   {
		   GraphicObject o = (GraphicObject) i.next();
		   if(o.getClass().getSimpleName().equalsIgnoreCase(type))
		   {
			   filterlist.add(o);
		   }
	   }
	   return filterlist;
	   
   } 
       
   public LinkedList<GraphicObject> searchElement (String elementname)
   {
	   LinkedList<GraphicObject> searchlist = new LinkedList<GraphicObject>();
	   Iterator i = this.getElements().iterator();
	   while(i.hasNext())
	   {
		   GraphicObject o = (GraphicObject) i.next();
		   if(o.getName().equalsIgnoreCase(elementname))
		   {
			   searchlist.add(o);
		   }
	   }
	   return searchlist;
   }
      
   public void printElements(LinkedList<GraphicObject> printlist)
   {
	   String printall = new String();
	   Iterator i = printlist.iterator();
	   while(i.hasNext())
	   {
		   GraphicObject o = (GraphicObject) i.next();
		   printall += "\n\n";
		   printall += o.toString();
	   }
	   System.out.print(printall);
   }
   
 
   public void saveObject(LinkedList<GraphicObject> elements) throws IOException{ 
	   
	   ObjectOutputStream oos = null;
	   
	   try{
		   
		   oos = new ObjectOutputStream(new FileOutputStream("out.dat"));
		   
		   Iterator z = elements.iterator();
		   
		   while(z.hasNext())
		   {
			   GraphicObject o = (GraphicObject) z.next();
			   oos.writeObject(o);
			   //oos.reset(); 
		   }   
		   
	   }
	   
	   catch(FileNotFoundException e)
	   {
		   System.err.println("Konnte 'out.dat' nicht erzeugen");
	   }
	   
	   catch (IOException e) 
	   {
			System.err.println("Fehler bei der Ein-/Ausgabe: " + e);
	   }
	   
		finally {
			try {
				oos.close();
			}
			catch (Exception e) 
			{
				System.err.println("Fehler beim Schließen der Datei");
			}
		}
   }

	public void readObject(LinkedList<GraphicObject> elements) throws IOException{   
	   
		ObjectInputStream ois = null;
		
	   	try{
		   
		   ois = new ObjectInputStream(new FileInputStream("out.dat"));
		   
		   Iterator z = elements.iterator();
		   
		   while(z.hasNext())
		   {
			   GraphicObject o = (GraphicObject) z.next();
			   ois.readObject(o);
			   //ois.reset(); 
		   }   

	   }
	   
	   	catch(FileNotFoundException e)
		   {
			   System.err.println("Konnte 'out.dat' nicht öffnen");
		   }
		   
		   catch (IOException e) 
		   {
				System.err.println("Fehler bei der Ein-/Ausgabe: " + e);
		   }
	   
	   finally {
			try {
				ois.close();
			}
			catch (Exception e) 
			{
				System.err.println("Fehler beim Schließen der Datei");
			}
		}
 
	}

  
   public static int readInt(){
	   
	   BufferedReader eingabeInt = new BufferedReader(new InputStreamReader(System.in));
	   String einlesen="";
	   
	   try{ 
		   einlesen=eingabeInt.readLine();     
	   }
	   
	   catch (Exception e){  
		   System.out.println(e);
	   }
	   
	   try{
		   return (new Integer(einlesen)).intValue(); 
	   }
	   
	   catch (Exception e){
		   return 0;
	   }
   }
   
   public static String readString(){
	   
	   BufferedReader eingabeString = new BufferedReader(new InputStreamReader(System.in));
	   
	   try{ 
		   return eingabeString.readLine();     
	   }
	   
	   catch (Exception e){  
		   System.out.println(e);
		   return new String("");
	   }
   }
   
   	public void hauptmenu()throws Exception{
	
   	   Manager system2 = new Manager();
   		
	   System.out.println("Willkommen zur Verwaltung grafischer Objekte");
	   System.out.println("Bitte wählen Sie eine Funktion aus");
	   System.out.println("(1) Neues grafisches Object anlegen");
	   System.out.println("(2) Bestehendes grafisches Object löschen");
	   System.out.println("(3) Grafisches Object auflisten");
	   System.out.println("(4) Grafisches Object suchen");
	   System.out.println("(5) Exit");
	   System.out.println("(Bitte eine Nummer eingeben:");
	   
	   int eingabe = readInt();
		  
	   switch(eingabe){
	   
	   case 1:
	   
		   system2.menu1();
		   break;
	   
	   case 2:
	   
		   //Element mit der ID 9 löschen
		   //system.delElement(9);
		   break;
		   
	   case 3:	
		   
		   //Alle Dreiecke ausgeben
		   //system.printElements(system.filterElement("triangle"));
		   break;
	   
	   case 4:
		   
           //Element mit Name Testkugel2 suchen und ausgeben
		   //system.printElements(system.searchElement("testkugel2"));
		   break;
	   case 5:
		   
		   System.out.println("--------Object saving---------\n");
		   system2.saveObject(elements);
		   
		   System.out.println("\n Programm beedndet!");
		   System.exit(0);
		   break;
	   }
	   
   }
   	
	public void menu1()throws Exception{
		  	
		   Manager system3 = new Manager();
			
		   System.out.println("Grafisches Objekt anlegen");
		   System.out.println("Bitte wählen Sie");
		   System.out.println("(1) für Sphere");
		   System.out.println("(2) für Point");
		   System.out.println("(3) für Line");
		   System.out.println("(4) für Triangle");
		   System.out.println("(5) Hauptmenu");
		   System.out.println("(Bitte eine Nummer eingeben:");
		   
		   int eingabe = readInt();
			  
		   switch(eingabe){
		   
		   case 1:
			   
			   int einlesenSphereX = 0;
			   int einlesenSphereY = 0;
			   int einlesenSphereZ = 0;
			   String einlesenSphereRadius = "";
			   String einlesenNameSphere = "";
			   
			   
			   System.out.println("Bitte geben Sie den Wert für X ein");
			   einlesenSphereX = readInt();
			   System.out.println("Bitte geben Sie den Wert für Y ein");
			   einlesenSphereY = readInt();
			   System.out.println("Bitte geben Sie den Wert für Z ein");
			   einlesenSphereZ = readInt();
			   
			   System.out.println("Bitte geben Sie den Wert für den Radius ein");
			   einlesenSphereRadius = readString();
			   System.out.println("Bitte geben Sie einen Namen ein");
			   einlesenNameSphere = readString();
			   
			   
			   system3.addNewSphere(einlesenSphereX, einlesenSphereY, einlesenSphereZ, 9, einlesenSphereRadius, einlesenNameSphere);
			   
			   system3.hauptmenu();
			   break;
		   
		   case 2:
			   
			   int einlesenPointX = 0;
			   int einlesenPointY = 0;
			   int einlesenPointZ = 0;
			   String einlesenNamePoint = "";
			   
			   System.out.println("Bitte geben Sie den Wert für X ein");
			   einlesenPointX = readInt();
			   System.out.println("Bitte geben Sie den Wert für Y ein");
			   einlesenPointY = readInt();
			   System.out.println("Bitte geben Sie den Wert für Z ein");
			   einlesenPointZ = readInt();
			   
			   System.out.println("Bitte geben Sie einen Namen ein");
			   einlesenNamePoint = readString();
			   
			   system3.addNewPoint(einlesenPointX, einlesenPointY, einlesenPointZ, einlesenNamePoint);
			  
			   system3.hauptmenu();
			   break;
			   
		   case 3:
			   
			   int einlesenlinePointX1 = 0;
			   int einlesenlinePointY1 = 0;
			   int einlesenlinePointZ1 = 0;
			   int einlesenlinePointX2 = 0;
			   int einlesenlinePointY2 = 0;
			   int einlesenlinePointZ2 = 0;
			   String einlesenNameLine = "";
			   
			   
			   System.out.println("Bitte geben Sie den Wert für X1 ein");
			   einlesenlinePointX1 = readInt();
			   System.out.println("Bitte geben Sie den Wert für Y1 ein");
			   einlesenlinePointY1 = readInt();
			   System.out.println("Bitte geben Sie den Wert für Z1 ein");
			   einlesenlinePointZ1 = readInt();
			   
			   System.out.println("Bitte geben Sie den Wert für X2 ein");
			   einlesenlinePointX2 = readInt();
			   System.out.println("Bitte geben Sie den Wert für Y2 ein");
			   einlesenlinePointY2 = readInt();
			   System.out.println("Bitte geben Sie den Wert für Z2 ein");
			   einlesenlinePointZ2 = readInt();
			   
			   System.out.println("Bitte geben Sie einen Namen ein");
			   einlesenNameLine = readString();
			   
			   system3.addNewLine(einlesenlinePointX1, einlesenlinePointY1, einlesenlinePointZ1, einlesenlinePointX2,einlesenlinePointY2, einlesenlinePointZ2, einlesenNameLine);
			   
			   system3.hauptmenu();
			   break;
		   
		   case 4:
			   
			   int einlesenPointtriangleX1 = 0;
			   int einlesenPointtriangleY1 = 0;
			   int einlesenPointtriangleZ1 = 0;
			   int einlesenPointtriangleX2 = 0;
			   int einlesenPointtriangleY2 = 0;
			   int einlesenPointtriangleZ2 = 0;
			   int einlesenPointtriangleX3 = 0;
			   int einlesenPointtriangleY3 = 0;
			   int einlesenPointtriangleZ3 = 0;
			   String einlesenNametriangle = "";
			   String einlesenfarbetriangle = "";
			   
			   
			   
			   System.out.println("Bitte geben Sie den Wert für X1 ein");
			   einlesenPointtriangleX1 = readInt();
			   System.out.println("Bitte geben Sie den Wert für Y1 ein");
			   einlesenPointtriangleY1 = readInt();
			   System.out.println("Bitte geben Sie den Wert für Z1 ein");
			   einlesenPointtriangleZ1 = readInt();
			   
			   System.out.println("Bitte geben Sie den Wert für X2 ein");
			   einlesenPointtriangleX2 = readInt();
			   System.out.println("Bitte geben Sie den Wert für Y2 ein");
			   einlesenPointtriangleY2 = readInt();
			   System.out.println("Bitte geben Sie den Wert für Z2 ein");
			   einlesenPointtriangleZ2 = readInt();
			   
			   System.out.println("Bitte geben Sie den Wert für X3 ein");
			   einlesenPointtriangleX3 = readInt();
			   System.out.println("Bitte geben Sie den Wert für Y3 ein");
			   einlesenPointtriangleY3 = readInt();
			   System.out.println("Bitte geben Sie den Wert für Z3 ein");
			   einlesenPointtriangleZ3 = readInt();
			   
			   System.out.println("Bitte geben Sie einen Namen ein");
			   einlesenNametriangle = readString();
			   System.out.println("Bitte eine Farbe ein");
			   einlesenfarbetriangle = readString();
			   
			   system3.addNewTriangle(einlesenPointtriangleX1, einlesenPointtriangleY1, einlesenPointtriangleZ1, einlesenPointtriangleX2, einlesenPointtriangleY2, einlesenPointtriangleZ2, einlesenPointtriangleX3, einlesenPointtriangleY3, einlesenPointtriangleZ3, einlesenNametriangle, einlesenfarbetriangle);
			   
			   system3.hauptmenu();
			   break;
		   case 5:
			   
			   system3.hauptmenu();
			   break;
		   }
		   
	   }
   
   public static void main (String[] args)throws Exception
   {
	   
	   //alle Elemente ausgeben
	   //system.printElements(elements);
	   
	   try{   
	   
	   Manager system = new Manager();
	   system.setIdcount(0);
	   
	   System.out.println("--------Object reading---------\n");
	   system.readObject(elements); 
	   
	   system.hauptmenu();
   	   }
	   
	   catch(Exception e){
	   
		   System.err.println(e);
		   
	   }   
   }
   
}
 

Ariol

Top Contributor
Zum einen hast du einen Doppelpost der ganz besonderen Art geschaffen, nämlich den gleichen Thread 2Mal erstellt
Zweitens ist das Ganze verdammt groß!

Kannst du das ganze nicht auf die Methode reduzieren in ders hackt oder die anderen Klassen posten, damit man wenigstens ordentlich testen kann???
 

André Uhres

Top Contributor
Code:
package basics;
/*
 * Manager.java
 */
import java.io.*;
import java.util.*;
public class Manager implements Serializable {
    private List<GraphicObject> elements;
    private int idcount;
    public Manager(){
        System.out.println("--------Object reading---------\n");
        List<GraphicObject> elements = readObject();
        if(elements != null) {
            setElements(elements);
        }else{
            setElements(new LinkedList<GraphicObject>());
        }
        int count = -1;
        for (GraphicObject elem : getElements()) {
            System.out.println(elem);
            int id = elem.getId();
            if(id > count){
                count = id;
            }
        }
        setIdcount(count+1);
        try {
            hauptmenu();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    public void setElements(List<GraphicObject> elements) {
        this.elements = elements;
    }
    public List<GraphicObject> getElements() {
        return elements;
    }
    public void setIdcount(final int idcount) {
        this.idcount = idcount;
    }
    public int getIdcount() {
        return idcount;
    }
    public int getNextId() {
        return idcount++;
    }
    public int addNewLine(final int xstart, final int ystart, final int zstart,
            final int xend, final int yend, final int zend, final String name) {
        Point start = new Point(xstart, ystart, zstart, 0, "Starting point");
        Point end = new Point(xend, yend, zend, 1,"Endpoint");
        Line newline = new Line(start, end, this.getNextId(), name);
        this.getElements().add(newline);
        System.out.println("Linie "+name+" erfolgreich hinzugefügt. \n");
        return newline.getId();
    }
    public int addNewPoint(final int x, final int y, final int z, final String name) {
        Point newpoint = new Point(x, y, z, this.getNextId(), name);
        this.getElements().add(newpoint);
        System.out.println("Punkt "+name+" erfolgreich hinzugefügt. \n");
        return newpoint.getId();
    }
    public int addNewSphere(final int pmidx, final int pmidy, final int pmidz,
            final int radius, final String color, final String name) {
        Point middle = new Point(pmidx, pmidy, pmidz, 0, "middle");
        Sphere newsphere = new Sphere(middle, radius, color, this.getNextId(), name);
        this.getElements().add(newsphere);
        System.out.println("Kugel "+name+" erfolgreich hinzugefügt. \n");
        return newsphere.getId();
    }
    public int addNewTriangle(final int x1, final int y1, final int z1, final int x2,
            final int y2, final int z2, final int x3, final int y3, final int z3,
            final String name, final String color) {
        Point xp = new Point(x1, y1, z1, 0, "Point 1");
        Point yp = new Point(x2, y2, z2, 1, "Point 2");
        Point zp = new Point(x3, y3, z3, 2, "Point 3");
        Triangle newtriangle = new Triangle(xp, yp, zp, color, this.getNextId(), name);
        this.getElements().add(newtriangle);
        System.out.println("Dreieck "+name+" erfolgreich hinzugefügt. \n");
        return newtriangle.getId();
    }
    public int delElement(final int id) {
        Iterator i = this.getElements().iterator();
        while(i.hasNext()) {
            GraphicObject o = (GraphicObject) i.next();
            if(o.getId() == id) {
                i.remove();
                System.out.println("Element mit der ID: "+id+" gelöscht.");
                return 1;
            }
        }
        System.out.println("Löschen nicht möglich. Die ID ist nicht vergeben.");
        return 0;
    }
    public List<GraphicObject> filterElement(final String type) {
        List<GraphicObject> filterlist = new LinkedList<GraphicObject>();
        Iterator i = this.getElements().iterator();
        while(i.hasNext()) {
            GraphicObject o = (GraphicObject) i.next();
            if(o.getClass().getSimpleName().equalsIgnoreCase(type)) {
                filterlist.add(o);
            }
        }
        return filterlist;
    }
    public List<GraphicObject> searchElement(final String elementname) {
        List<GraphicObject> searchlist = new LinkedList<GraphicObject>();
        Iterator i = this.getElements().iterator();
        while(i.hasNext()) {
            GraphicObject o = (GraphicObject) i.next();
            if(o.getName().equalsIgnoreCase(elementname)) {
                searchlist.add(o);
            }
        }
        return searchlist;
    }
    public void printElements(final List<GraphicObject> printlist) {
        String printall = new String();
        Iterator i = printlist.iterator();
        while(i.hasNext()) {
            GraphicObject o = (GraphicObject) i.next();
            printall += "\n\n";
            printall += o.toString();
        }
        System.out.print(printall);
    }
    public void saveObject(final List<GraphicObject> elements) throws IOException{
        ObjectOutputStream oos = null;
        try{
            oos = new ObjectOutputStream(new FileOutputStream("out.dat"));
            oos.writeObject(elements);
        } catch(FileNotFoundException e) {
            System.err.println("Konnte 'out.dat' nicht erzeugen");
        } catch (IOException e) {
            System.err.println("Fehler bei der Ein-/Ausgabe: " + e);
        } finally {
            try {
                oos.close();
            } catch (Exception e) {
                System.err.println("Fehler beim Schließen der Datei");
            }
        }
    }
    public List<GraphicObject> readObject() {
        List<GraphicObject> elementsRead = null;
        ObjectInputStream ois = null;
        try{
            ois = new ObjectInputStream(new FileInputStream("out.dat"));
            elementsRead = (List<GraphicObject>) ois.readObject();
        }catch(FileNotFoundException e) {
            System.err.println("Konnte 'out.dat' nicht öffnen");
        }catch(ClassNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e) {
            System.err.println("Fehler bei der Ein-/Ausgabe: " + e);
        } finally {
            try {
                if(ois != null) ois.close();
            } catch (Exception e) {
                System.err.println("Fehler beim Schließen der Datei");
            }
        }
        return elementsRead;
    }
    public int readInt(){
        BufferedReader eingabeInt = new BufferedReader(new InputStreamReader(System.in));
        String einlesen="";
        try{
            einlesen=eingabeInt.readLine();
        } catch (Exception e){
            System.out.println(e);
        }
        try{
            return (new Integer(einlesen)).intValue();
        } catch (Exception e){
            return 0;
        }
    }
    public String readString(){
        BufferedReader eingabeString = new BufferedReader(new InputStreamReader(System.in));
        try{
            return eingabeString.readLine();
        } catch (Exception e){
            System.out.println(e);
            return new String("");
        }
    }
    public void hauptmenu()throws Exception{
        System.out.println("Willkommen zur Verwaltung grafischer Objekte");
        System.out.println("Bitte wählen Sie eine Funktion aus");
        System.out.println("(1) Neues grafisches Object anlegen");
        System.out.println("(2) Bestehendes grafisches Object löschen");
        System.out.println("(3) Grafisches Object auflisten");
        System.out.println("(4) Grafisches Object suchen");
        System.out.println("(5) Exit");
        System.out.println("(Bitte eine Nummer eingeben:");
        int eingabe = readInt();
        switch(eingabe){
            case 1:
                menu1();
                break;
            case 2:
                //Element mit der ID 9 löschen
                //delElement(9);
                //hauptmenu();
                break;
            case 3:
                //Alle Dreiecke ausgeben
                //system.printElements(system.filterElement("triangle"));
                break;
            case 4:
                //Element mit Name Testkugel2 suchen und ausgeben
                //system.printElements(system.searchElement("testkugel2"));
                break;
            case 5:
                System.out.println("--------Object saving---------\n");
                saveObject(elements);
                System.out.println("\n Programm beedndet!");
                System.exit(0);
                break;
        }
    }
    public void menu1()throws Exception{
        System.out.println("Grafisches Objekt anlegen");
        System.out.println("Bitte wählen Sie");
        System.out.println("(1) für Sphere");
        System.out.println("(2) für Point");
        System.out.println("(3) für Line");
        System.out.println("(4) für Triangle");
        System.out.println("(5) Hauptmenu");
        System.out.println("(Bitte eine Nummer eingeben:");
        int eingabe = readInt();
        switch(eingabe){
            case 1:
                int einlesenSphereX = 0;
                int einlesenSphereY = 0;
                int einlesenSphereZ = 0;
                int einlesenSphereRadius = 0;
                String einlesenNameSphere = "";
                System.out.println("Bitte geben Sie den Wert für X ein");
                einlesenSphereX = readInt();
                System.out.println("Bitte geben Sie den Wert für Y ein");
                einlesenSphereY = readInt();
                System.out.println("Bitte geben Sie den Wert für Z ein");
                einlesenSphereZ = readInt();
                System.out.println("Bitte geben Sie den Wert für den Radius ein");
                einlesenSphereRadius = readInt();
                System.out.println("Bitte geben Sie einen Namen ein");
                einlesenNameSphere = readString();
                addNewSphere(einlesenSphereX, einlesenSphereY, einlesenSphereZ, einlesenSphereRadius, "color",  einlesenNameSphere);
                hauptmenu();
                break;
            case 2:
                int einlesenPointX = 0;
                int einlesenPointY = 0;
                int einlesenPointZ = 0;
                String einlesenNamePoint = "";
                System.out.println("Bitte geben Sie den Wert für X ein");
                einlesenPointX = readInt();
                System.out.println("Bitte geben Sie den Wert für Y ein");
                einlesenPointY = readInt();
                System.out.println("Bitte geben Sie den Wert für Z ein");
                einlesenPointZ = readInt();
                System.out.println("Bitte geben Sie einen Namen ein");
                einlesenNamePoint = readString();
                addNewPoint(einlesenPointX, einlesenPointY, einlesenPointZ, einlesenNamePoint);
                hauptmenu();
                break;
            case 3:
                int einlesenlinePointX1 = 0;
                int einlesenlinePointY1 = 0;
                int einlesenlinePointZ1 = 0;
                int einlesenlinePointX2 = 0;
                int einlesenlinePointY2 = 0;
                int einlesenlinePointZ2 = 0;
                String einlesenNameLine = "";
                System.out.println("Bitte geben Sie den Wert für X1 ein");
                einlesenlinePointX1 = readInt();
                System.out.println("Bitte geben Sie den Wert für Y1 ein");
                einlesenlinePointY1 = readInt();
                System.out.println("Bitte geben Sie den Wert für Z1 ein");
                einlesenlinePointZ1 = readInt();
                System.out.println("Bitte geben Sie den Wert für X2 ein");
                einlesenlinePointX2 = readInt();
                System.out.println("Bitte geben Sie den Wert für Y2 ein");
                einlesenlinePointY2 = readInt();
                System.out.println("Bitte geben Sie den Wert für Z2 ein");
                einlesenlinePointZ2 = readInt();
                System.out.println("Bitte geben Sie einen Namen ein");
                einlesenNameLine = readString();
                addNewLine(einlesenlinePointX1, einlesenlinePointY1, einlesenlinePointZ1, einlesenlinePointX2,einlesenlinePointY2, einlesenlinePointZ2, einlesenNameLine);
                hauptmenu();
                break;
            case 4:
                int einlesenPointtriangleX1 = 0;
                int einlesenPointtriangleY1 = 0;
                int einlesenPointtriangleZ1 = 0;
                int einlesenPointtriangleX2 = 0;
                int einlesenPointtriangleY2 = 0;
                int einlesenPointtriangleZ2 = 0;
                int einlesenPointtriangleX3 = 0;
                int einlesenPointtriangleY3 = 0;
                int einlesenPointtriangleZ3 = 0;
                String einlesenNametriangle = "";
                String einlesenfarbetriangle = "";
                System.out.println("Bitte geben Sie den Wert für X1 ein");
                einlesenPointtriangleX1 = readInt();
                System.out.println("Bitte geben Sie den Wert für Y1 ein");
                einlesenPointtriangleY1 = readInt();
                System.out.println("Bitte geben Sie den Wert für Z1 ein");
                einlesenPointtriangleZ1 = readInt();
                System.out.println("Bitte geben Sie den Wert für X2 ein");
                einlesenPointtriangleX2 = readInt();
                System.out.println("Bitte geben Sie den Wert für Y2 ein");
                einlesenPointtriangleY2 = readInt();
                System.out.println("Bitte geben Sie den Wert für Z2 ein");
                einlesenPointtriangleZ2 = readInt();
                System.out.println("Bitte geben Sie den Wert für X3 ein");
                einlesenPointtriangleX3 = readInt();
                System.out.println("Bitte geben Sie den Wert für Y3 ein");
                einlesenPointtriangleY3 = readInt();
                System.out.println("Bitte geben Sie den Wert für Z3 ein");
                einlesenPointtriangleZ3 = readInt();
                System.out.println("Bitte geben Sie einen Namen ein");
                einlesenNametriangle = readString();
                System.out.println("Bitte eine Farbe ein");
                einlesenfarbetriangle = readString();
                addNewTriangle(einlesenPointtriangleX1, einlesenPointtriangleY1, einlesenPointtriangleZ1, einlesenPointtriangleX2, einlesenPointtriangleY2, einlesenPointtriangleZ2, einlesenPointtriangleX3, einlesenPointtriangleY3, einlesenPointtriangleZ3, einlesenNametriangle, einlesenfarbetriangle);
                hauptmenu();
                break;
            case 5:
                hauptmenu();
                break;
        }
    }
    public static void main(final String[] args)throws Exception {new Manager();}
}
abstract class GraphicObject{
    abstract int getId();
    abstract String getName();
}
class Point extends GraphicObject implements Serializable{
    private int i1, i2, i3, id;
    private String name;
    public Point(final int i1, final int i2, final int i3, final int id, final String name){
        this.i1 = i1;
        this.i2 = i2;
        this.i3 = i3;
        this.id = id;
        this.name = name;
    }
    public int getId() {return id;}
    public String getName() {return name;}
    public String toString() {
        return "Point '"+name+"'("+id+"): "+i1+", "+i2+", "+i3+"    ";
    }
}
class Line extends GraphicObject implements Serializable{
    private Point p1, p2;
    private int id;
    private String name;
    public Line(final Point p1, final Point p2, final int id, final String name){
        this.p1 = p1;
        this.p2 = p2;
        this.id = id;
        this.name = name;
    }
    public int getId() {return id;}
    public String getName() {return name;}
    public String toString() {
        return "Line '"+name+"'("+id+"): "+p1+p2;
    }
}
class Sphere extends GraphicObject implements Serializable{
    private Point p;
    private String str1, name;
    private int i, id;
    public Sphere(final Point p, final int i, final String str1, final int id, final String name ){
        this.p = p;
        this.i = i;
        this.str1 = str1;
        this.id = id;
        this.name = name;
    }
    public int getId() {return id;}
    public String getName() {return name;}
    public String toString() {
        return "Sphere '"+name+"'("+id+"): "+p+" "+i;
    }
}
class Triangle extends GraphicObject implements Serializable{
    private Point p1, p2, p3;
    private String str1, name;
    private int id;
    public Triangle(final Point p1, final Point p2, final Point p3, final String str1,
            final int id, final String name){
        this.p1 = p1;
        this.p2 = p2;
        this.p3 = p3;
        this.str1 = str1;
        this.name = name;
        this.id = id;
    }
    public int getId() {return id;}
    public String getName() {return name;}
    public String toString() {
        return "Triangle '"+name+"'("+id+"): "+p1+p2+p3;
    }
}
 

Leroy42

Top Contributor
Ohh! Ein Thread indem jeder mal seinen Code posten kann?

Nicht schlecht! Dann bin ich auch mal dran.

Was haltet ihr von meiner kleinen Sortierroutine?
Code:
import java.util.*;

public class Test {
	static final Random rand = new Random();
	int[] sort(int[] array) {
		while (!sorted(array))
			shuffle(array);
		return array;
	}
	boolean sorted(int[] a) {return sorted(a, 0);}
	boolean sorted(int[] a, int i) {
		return i >= a.length-1 || (a[i]<=a[i+1] && sorted(a,i+1));
	}
	void shuffle(int[] a) {
		int x = rand.nextInt(a.length); 
		int y = rand.nextInt(a.length);
		int h = a[x];
		a[x] = a[y];
		a[y] = h;
	}
	public static void main(String[] args) { 
		for (int i : new Test().sort(new int[]  {10,9,8,7,6,5,4,3,2,1}))
			System.out.println(i);
	}
}

Ich geb' zu, sie könnte noch ein klein Wenig optimiert werden. ???:L
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
sserio Java Fx, wie erstellt man einen EventHandler, der durch das Drücken eines Button Texte in eine Table view einfügt Java Basics - Anfänger-Themen 17
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
YaU Vererbung erstellt NullPointerException? Java Basics - Anfänger-Themen 4
L Java erstellt leere Datei Java Basics - Anfänger-Themen 8
C "HelloWorld" - Dateien erstellt, aber ist es eine class-Datei? Java Basics - Anfänger-Themen 2
L Input/Output AudioInputStream kann nicht erstellt werden. Java Basics - Anfänger-Themen 3
C Wie erstellt man einen Timer/Delay? Java Basics - Anfänger-Themen 1
W Ist mein Struktogram richtig erstellt worden? Java Basics - Anfänger-Themen 4
J Operatoren Random wird nur einmal erstellt und dann immer verwendet Java Basics - Anfänger-Themen 2
DaCrazyJavaExpert Datenbank wird nicht erstellt Java Basics - Anfänger-Themen 31
Silvascus Array, der mit dem Namen, der per Methode übergeben wird, erstellt wird Java Basics - Anfänger-Themen 5
J Methoden Überprüfen ob Objekt bereits erstellt wurde Java Basics - Anfänger-Themen 2
V Methoden Objekte werden anscheinend nicht erstellt Java Basics - Anfänger-Themen 3
V Arrays aus eigener Klasse erstellt, zuweisung aber spuckt Fehler in verbindung mit main Methode aus. Java Basics - Anfänger-Themen 3
P Erste Schritte WindowBuilder erstellt Konstruktor wie zugreifen Java Basics - Anfänger-Themen 5
B In welchem (Default) Pfad erstellt Java Dateien? Java Basics - Anfänger-Themen 4
W Eclipse erstellt keine Klassen Java Basics - Anfänger-Themen 6
M Java Eclipse IDE erstellt keinen Bin Ordner. Java Basics - Anfänger-Themen 10
M Java Bukkit Plugin (selbst erstellt) Java Basics - Anfänger-Themen 9
J Compiler-Fehler .jar Datei erstellt aber beim Ausführen Fehler Java Basics - Anfänger-Themen 5
H datei wird zwar erstellt, aber nichts geschrieben Java Basics - Anfänger-Themen 2
B BufferedWriter - nur leere Datei erstellt Java Basics - Anfänger-Themen 4
S Hilfe es werden keine class files erstellt Java Basics - Anfänger-Themen 5
B Liebesprogramm erstellt aber wie sorg ich dafür, dass es im bildschrim agezeigt wird? Java Basics - Anfänger-Themen 16
P Jar Datei kann nicht wie gewollt erstellt werden. Java Basics - Anfänger-Themen 5
Antoras BoxLayout wird auf JPanel nicht erstellt Java Basics - Anfänger-Themen 4
C .class wird nicht erstellt Java Basics - Anfänger-Themen 4
A Checkboxen in Schleife erstellt -> wie 'ansprechen' ? Java Basics - Anfänger-Themen 3
G Wie erstellt Ihr die Hilfe? Java Basics - Anfänger-Themen 4
D Java-Pojekt in Eclispe erstellt -> Wie nun compilieren ? Java Basics - Anfänger-Themen 29
G Wie erstellt man komplexen regulären Ausdruck Java Basics - Anfänger-Themen 5
T Fenster JFrame erstellt, jetzt bearbeiten! Java Basics - Anfänger-Themen 6
G Propertydatei wird zweimal erstellt ? Wie verhindern? Java Basics - Anfänger-Themen 6
P Instanz kann nicht erstellt werden. Java Basics - Anfänger-Themen 2
K Programm erstellt 2 Textdataien Java Basics - Anfänger-Themen 5
B Label wird ungewollt mehrmals erstellt Java Basics - Anfänger-Themen 16
M Programm(JFrame) mit Netbeans erstellt.startet nicht! Java Basics - Anfänger-Themen 4
N RandomAccessFile(File, String) erstellt datei?! Java Basics - Anfänger-Themen 6
R POI HSSF liesst in Excel Formel statt Ergebnis Java Basics - Anfänger-Themen 4
A unsigniertes Applet liesst die Daten ab Java Basics - Anfänger-Themen 12
A "Hello World"-Programm läuft nicht Java Basics - Anfänger-Themen 16
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
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
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
K Warum wird mir auf der Konsole des Servers nicht "xxxx" angezeigt (Server/Client) Java Basics - Anfänger-Themen 4
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
S nach Import von jars (PLC4x) in Eclipse kann nicht mehr compiliert werden Java Basics - Anfänger-Themen 9
J Datenüberwachung funktioniert nicht Java Basics - Anfänger-Themen 9
S Wie debugge ich dies am besten: SingleThreadExecutor führt Task nicht aus..? Java Basics - Anfänger-Themen 29
H JDK installieren jdk-21 wird nicht erkannt Java Basics - Anfänger-Themen 13
N Klassen Hintergrundfarbe in JPanel ändert sich nicht Java Basics - Anfänger-Themen 3
K Warum wird mir "Empfangen vom Client:" nicht sofort ausgegeben(Server/Client) Java Basics - Anfänger-Themen 3
mo13 JTextField funktioniert nicht Java Basics - Anfänger-Themen 4
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
K TicTacToe belegtes feld nicht neu besetzbar Java Basics - Anfänger-Themen 1
K TicTacToe belegtes Feld nicht neu besetzbar Java Basics - Anfänger-Themen 3
A Warum wird mein jdk nicht gefunden? Java Basics - Anfänger-Themen 3
M Queue-Datenstruktur: nach dem Elementen entfernen, das Ergebnis ist immer noch nicht optimal. Java Basics - Anfänger-Themen 3
K Programm compilierbar aber nicht ausführbar... Java Basics - Anfänger-Themen 21
N Hey Leute und zwar versuche ich gerade ein 2D Spiel zu Programmieren aber die Figur will sich nicht nach links oder rechts bewegen :( Java Basics - Anfänger-Themen 12
G Mit jPackage erstellte EXE funktioniert nicht Java Basics - Anfänger-Themen 2
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
G Robot funktioniert nicht bei SelectionListener Java Basics - Anfänger-Themen 6
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
J jar Befehl wird nicht erkannt Java Basics - Anfänger-Themen 7
missy72 Erste Schritte (nicht) Deterministischer endlicher Automat Java Basics - Anfänger-Themen 9
T Getter/Setter - wie sieht ein Setter aus? Und wie nicht? Java Basics - Anfänger-Themen 34
T catch(InputMismatchException) wird nicht ausgefürt/erkannt Java Basics - Anfänger-Themen 12
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
R RegEx funktioniert nicht Java Basics - Anfänger-Themen 14
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
H Counter durch gepresste Taste nur auf 1 erhöhen und nicht durchzählen lassen Java Basics - Anfänger-Themen 7
S 2 Reihen ratio-btn, eine Reihe funktioniert andere nicht Java Basics - Anfänger-Themen 4
T scanner nicht erkannt Java Basics - Anfänger-Themen 3
monsterherz Punkt Notation funktioniert nicht Java Basics - Anfänger-Themen 4
monsterherz Fehler Semikolon fehlt - ich weiss aber nicht wo da noch eines hin sollte... Java Basics - Anfänger-Themen 21
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
monsterherz if / else if mit Fehler den ich leider nicht finde Java Basics - Anfänger-Themen 11
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
M Konstruktor-Aufruf im Konstruktor, aber nicht am Anfang? Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
Darkherobrine9 Import klappt nicht Java Basics - Anfänger-Themen 7
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
_so_far_away_ Inventarisierungssystem brauche switch Cases und weiß nicht, wie ich e implementieren muss Java Basics - Anfänger-Themen 5
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
I Erste Schritte Einfache Datenbank-Webseite erstellen als Nicht-IT-lerin Java Basics - Anfänger-Themen 24

Ähnliche Java Themen

Neue Themen


Oben