Programmstelle kürzen

Hallo,

ich würd das gern etwas kürzen, aber ich weiß nicht wie:

        jb2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    ResObj ro1 = ResObj.exeQ("....");
                    LinkedList<LinkedList<String>> ls1 = ro1.ls;
                    ResObj ro2 = ResObj.exeQ("....");
                    LinkedList<LinkedList<String>> ls2 = ro2.ls;
                    ResObj ro3 = ResObj.exeQ("....");
                    LinkedList<LinkedList<String>> ls3 = ro3.ls;
                    jta.append(ro1 + "

");
                    jta.append(ro2 + "

");
                    jta.append(ro3 + "

");

                    String[][][] saaa = new String[3][ls1.size()][ls2.get(0).size()];
                    int[][] iaa = new int[3][ls2.get(0).size()];
                    for (int i = 0; i < ls1.size(); i++) {
                        for (int j = 0; j < ls1.get(i).size(); j++) {
                            String s = ls1.get(i).get(j);
                            if (j == 1) {
                                Pattern p = Pattern.compile("^(.+-.).*$");
                                Matcher m = p.matcher(s);
                                if (m.find()) {
                                    s = m.group(1);
                                }
                            }
                            saaa[0]**[j] = s;
                            iaa[0][j] = Math.max(iaa[0][j], s.length());
                        }
                    }
                    for (int i = 0; i < ls2.size(); i++) {
                        for (int j = 0; j < ls2.get(i).size(); j++) {
                            String s = ls2.get(i).get(j);
                            if (j == 1) {
                                Pattern p = Pattern.compile("^(.+-.).*$");
                                Matcher m = p.matcher(s);
                                if (m.find()) {
                                    s = m.group(1);
                                }
                            }
                            saaa[1]**[j] = s;
                            iaa[1][j] = Math.max(iaa[1][j], s.length());
                        }
                    }
                    for (int i = 0; i < ls3.size(); i++) {
                        for (int j = 0; j < ls3.get(i).size(); j++) {
                            String s = ls3.get(i).get(j);
                            if (j == 1) {
                                Pattern p = Pattern.compile("^(.+-.).*$");
                                Matcher m = p.matcher(s);
                                if (m.find()) {
                                    s = m.group(1);
                                }
                            }
                            saaa[2]**[j] = s;
                            iaa[2][j] = Math.max(iaa[2][j], s.length());
                        }
                    }

                    File f = new File("irgendwo1.txt");
                    PrintWriter pw = new PrintWriter(f);
                    for (int i = 0; i < saaa[0].length; i++) {
                        for (int j = 0; j < saaa[0]**.length; j++) {
                            String s = saaa[0]**[j];
                            if (s == null) {
                                break;
                            }
                            if (j == 1) {
                                pw.print(s);
                                for (int k = s.length(); k < iaa[0][j]; k++) {
                                    pw.print(" ");
                                }
                            } else {
                                for (int k = s.length(); k < iaa[0][j]; k++) {
                                    pw.print(" ");
                                }
                                pw.print(s);
                            }
                            pw.print(" ");
                        }
                        pw.println();
                    }
                    pw.flush();
                    pw.close();

                    f = new File("irgendwo2.txt");
                    pw = new PrintWriter(f);
                    for (int i = 0; i < saaa[1].length; i++) {
                        for (int j = 0; j < saaa[1]**.length; j++) {
                            String s = saaa[1]**[j];
                            if (s == null) {
                                break;
                            }
                            if (j == 1) {
                                pw.print(s);
                                for (int k = s.length(); k < iaa[1][j]; k++) {
                                    pw.print(" ");
                                }
                            } else {
                                for (int k = s.length(); k < iaa[1][j]; k++) {
                                    pw.print(" ");
                                }
                                pw.print(s);
                            }
                            pw.print(" ");
                        }
                        pw.println();
                    }
                    pw.flush();
                    pw.close();

                    f = new File("irgendwo3.txt");
                    pw = new PrintWriter(f);
                    for (int i = 0; i < saaa[2].length; i++) {
                        for (int j = 0; j < saaa[2]**.length; j++) {
                            String s = saaa[2]**[j];
                            if (s == null) {
                                break;
                            }
                            if (j == 1) {
                                pw.print(s);
                                for (int k = s.length(); k < iaa[2][j]; k++) {
                                    pw.print(" ");
                                }
                            } else {
                                for (int k = s.length(); k < iaa[2][j]; k++) {
                                    pw.print(" ");
                                }
                                pw.print(s);
                            }
                            pw.print(" ");
                        }
                        pw.println();
                    }
                    pw.flush();
                    pw.close();
                } catch (Exception ex) {
                    ex.printStackTrace();
                    JOptionPane.showMessageDialog(null, e.toString() + "
" + ex.getMessage());
                }
            }
        });```

Es soll einfach nur einen Liste ausgegeben werden, irgendwo müsste durch etwas sinnvolles ersetzt werden, eigentlich sollten Zellen nur nicht zu lang sein.

Danke für hilfe.

Ich darf mal raten:
UnitTests, die das Refactoring gegen unbeabsichtigte fachliche Änderungen sichern gibt’s nicht?

bye
TT

Ich versteh deine Frage gar nicht? Deutsch, Chinesisch, was denn jetzt? :smiley:

Wenn du nicht helfen möchtest, musst du ja nicht, keiner zwingt dich, zieh einfach zurück und alle habn mehr davon.^^

vielleicht fängst du erst einmal damit an, deinen code besser zu benennen…
wie soll man sowas:

iaa[1][j] = Math.max(iaa[1][j], s.length());```
bitte **verstehen**?

Nagut, es gibt eine Tabelle, in Form von LinkedList<… und später in Form von String[][]. 3 Tabellen insgesamt.

Für jede Zelle/Spalte soll jetzt bestimmt werden, die Länge des Textes der längsten Zelle.

Dann soll das ganze formatiert in eine Datei geschrieben werden (in 3 Dateien).

Ich kann das leider ab >= 200 Reihen nicht mehr überprüfen, ob nicht irgendwo i 1 2 1 usw. vertauscht wurde. Versteht ihr jetzt, was ich meine?

ch würd das gern etwas kürzen, aber ich weiß nicht wie:

drei fast völlig identische Codeblöcke - da hat deine IDE unter Refactoring was namens “Extract Method”, da solltest du ansetzen

Erst einmal ein Lob dafür, dass du das nicht so stehen lassen willst. Es gibt durchaus Leute, die das so lassen würden, und stolz drauf wären.

Ich würde, wie mymaksimus schon vorgeschlagen hat, mit einer vernünftigen Benennung anfangen - das hilft wirklich.

Das Problem überlanger Methoden ist gewöhnlich, dass sie verschiedene Abstraktionsebenen vermischen, also Details und viel allgemeinere Aktionen vermischen. Um das zu refactorn hilft, die Methode mit zwei, drei Sätzen zu beschreiben (aber wirklich so, dass es ein anderer verstehen kann, also nicht zuviel dabei “voraussetzen”). Damit hast du einen guten Ansatzpunkt, was in der Haupt-Methode stehen sollte. Alles andere schiebst du in Unter-Methoden, die du nach den Teil-Aktionen benennst. Dabei bieten sich vorhandene Strukturen wie for-Schleifen natürlich als Einheit an (vor allem, wenn sie ein einziges “Ergebnis” liefern).

Natürlich sehen Profis wie Bleiglanz solche Möglichkeiten zum Refactoring beim Drüberblinzeln, aber du sollst ja lernen, wie man systematisch an sowas rangeht. Und auch wenn es erst einmal schwer fällt, ist das eine Fähigkeit, die man lernen kann.

Ist eben auch der Wunsch, das arme Silizium nicht zu sehr zu quälen. Anfangen sollte man aber wirklich mal ganz im kleinen:

 Pattern p = Pattern.compile("^(.+-.).*$");

Dreimal identisch im Quelltext - warum?

Da ist ein magischer String - sollte doch eine Konstante sein?

Mit StrgC StrgV im Quelltext gearbeitet - da sollte einen ein unheimliches Gefühl überkommen … steht der Chef hinter mir,…das ist doch nicht gut…

Und viele Zeilen in einer actionPerformed -> Angst!

Eine gute Frage, und aus der Antwort

ist klar zu erkennen, das es das nicht gibt.

  1. UnitTests sind kleine Programmzeilen mit denen man eine Unit (in dem Fall eine Klasse oder sogar nur eine public Funktion) testen kann. Somit kann man feststellen, ob der Code das macht, was er machen soll, ohne das Komplette Programm laufen zu lassen. Hier wird im Gegensatz zum Manuellen durchklicken ganz speziell eine Unit getestet.
  2. Refactorings sind Anpassungen an dem Code, die Fachlich (also von dem Ergebnis her) nichts anderes machen als vor dem Bearbeiten, aber danach sollte der Code übersichtlicher, besser zu lesen, einfacher zu testen sein
  3. unbeabsichtigte fachliche Änderungen wären sowas, wie man macht bei den Anpassungen (Kürzungen, wie du es nanntest) einen Fehler und der Code liefert z.B. auf die frage was ist 1+1 nun nicht mehr 2 sondern 1.

Hat man also nun solche angesprochenen Unit Tests, kann man in dem Code arbeiten und kann danach leicht feststellen, ob der Code noch immer das tut, was er machen soll

So nach dieser kurzen Erklärung, du solltest auf jeden Fall mal die Variablen schöner, leserlicher benennen. Code der sich wiederholt in private Methoden auslagern schau dir dafür mal das hier an Clean Code

Mit dem Code kann man ja den Preis unschönster Code des Jahres gewinnen nicht persönlich nehmen

@CyborgBeta schon mal was von Funktionen gehört und von DRY Prinzip?

mal schnell drüber geschaut/ungetestet

		private String[][][] saaa;
		int[][] iaa;
		private void doListenFuellen(int listenNummer, Liste liste){
			for (int i = 0; i < liste.size(); i++) {
                        for (int j = 0; j < liste.get(i).size(); j++) {
                            String s = liste.get(i).get(j);
                            if (j == 1) {
                                Pattern p = Pattern.compile("^(.+-.).*$");
                                Matcher m = p.matcher(s);
                                if (m.find()) {
                                    s = m.group(1);
                                }
                            }
                            saaa[listenNummer]**[j] = s;
                            iaa[listenNummer][j] = Math.max(iaa[listenNummer][j], s.length());
                        }
                    }
		}
		
		private void doListenSchreiben(String name, int listenNummer){
			File f = new File(name);
                    PrintWriter pw = new PrintWriter(f);
                    for (int i = 0; i < saaa[listenNummer].length; i++) {
                        for (int j = 0; j < saaa[listenNummer]**.length; j++) {
                            String s = saaa[listenNummer]**[j];
                            if (s == null) {
                                break;
                            }
                            if (j == 1) {
                                pw.print(s);
                                for (int k = s.length(); k < iaa[listenNummer][j]; k++) {
                                    pw.print(" ");
                                }
                            } else {
                                for (int k = s.length(); k < iaa[listenNummer][j]; k++) {
                                    pw.print(" ");
                                }
                                pw.print(s);
                            }
                            pw.print(" ");
                        }
                        pw.println();
                    }
                    pw.flush();
                    pw.close();
		}
		
		JButton jb2 = new JButton("createV1V2V3 ... ");
        jb2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    ResObj ro1 = ResObj.exeQ("....");
                    LinkedList<LinkedList<String>> ls1 = ro1.ls;
                    ResObj ro2 = ResObj.exeQ("....");
                    LinkedList<LinkedList<String>> ls2 = ro2.ls;
                    ResObj ro3 = ResObj.exeQ("....");
                    LinkedList<LinkedList<String>> ls3 = ro3.ls;
                    jta.append(ro1 + "

");
                    jta.append(ro2 + "

");
                    jta.append(ro3 + "

");

                    saaa = new String[3][ls1.size()][ls2.get(0).size()];
                    iaa = new int[3][ls2.get(0).size()];
					doListenFuellen(0,ls1);
					doListenFuellen(1,ls2);
					doListenFuellen(2,ls3);
                    
					doListenSchreiben("irgendwo1.txt",0);
					doListenSchreiben("irgendwo2.txt",1);
					doListenSchreiben("irgendwo3.txt",2);
                    

                    
                } catch (Exception ex) {
                    ex.printStackTrace();
                    JOptionPane.showMessageDialog(null, e.toString() + "
" + ex.getMessage());
                }
            }
        });```

 @CyborgBeta  lese dir mal [das](http://de.wikipedia.org/wiki/Clean_Code) durch und verstehe es

Mit dem Code kann man ja den Preis unschönster Code des Jahres gewinnen nicht persönlich nehmen

@CyborgBeta schon mal was von Funktionen gehört und von DRY Prinzip?

mal schnell drüber geschaut/ungetestet

		private String[][][] saaa;
		int[][] iaa;
		private void doListenFuellen(int listenNummer, Liste liste){
			for (int i = 0; i < liste.size(); i++) {
                        for (int j = 0; j < liste.get(i).size(); j++) {
                            String s = liste.get(i).get(j);
                            if (j == 1) {
                                Pattern p = Pattern.compile("^(.+-.).*$");
                                Matcher m = p.matcher(s);
                                if (m.find()) {
                                    s = m.group(1);
                                }
                            }
                            saaa[listenNummer]**[j] = s;
                            iaa[listenNummer][j] = Math.max(iaa[listenNummer][j], s.length());
                        }
                    }
		}
		
		private void doListenSchreiben(String name, int listenNummer){
			File f = new File(name);
                    PrintWriter pw = new PrintWriter(f);
                    for (int i = 0; i < saaa[listenNummer].length; i++) {
                        for (int j = 0; j < saaa[listenNummer]**.length; j++) {
                            String s = saaa[listenNummer]**[j];
                            if (s == null) {
                                break;
                            }
                            if (j == 1) {
                                pw.print(s);
                                for (int k = s.length(); k < iaa[listenNummer][j]; k++) {
                                    pw.print(" ");
                                }
                            } else {
                                for (int k = s.length(); k < iaa[listenNummer][j]; k++) {
                                    pw.print(" ");
                                }
                                pw.print(s);
                            }
                            pw.print(" ");
                        }
                        pw.println();
                    }
                    pw.flush();
                    pw.close();
		}
		
		JButton jb2 = new JButton("createV1V2V3 ... ");
        jb2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    ResObj ro1 = ResObj.exeQ("....");
                    LinkedList<LinkedList<String>> ls1 = ro1.ls;
                    ResObj ro2 = ResObj.exeQ("....");
                    LinkedList<LinkedList<String>> ls2 = ro2.ls;
                    ResObj ro3 = ResObj.exeQ("....");
                    LinkedList<LinkedList<String>> ls3 = ro3.ls;
                    jta.append(ro1 + "

");
                    jta.append(ro2 + "

");
                    jta.append(ro3 + "

");

                    saaa = new String[3][ls1.size()][ls2.get(0).size()];
                    iaa = new int[3][ls2.get(0).size()];
					doListenFuellen(0,ls1);
					doListenFuellen(1,ls2);
					doListenFuellen(2,ls3);
                    
					doListenSchreiben("irgendwo1.txt",0);
					doListenSchreiben("irgendwo2.txt",1);
					doListenSchreiben("irgendwo3.txt",2);
                    

                    
                } catch (Exception ex) {
                    ex.printStackTrace();
                    JOptionPane.showMessageDialog(null, e.toString() + "
" + ex.getMessage());
                }
            }
        });```

  @CyborgBeta  lese dir mal [das](http://de.wikipedia.org/wiki/Clean_Code) durch und verstehe es

*** Edit ***

ohh das hatte ja schon @CyborgGamma  verlinkt

Ich habs mal verbessert, weil ich heute etwas Zeit hatte:

        jb2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                try {
                    ResObj ro1 = ResObj.exeQ("...geheim...");
                    LinkedList<LinkedList<String>> ls1 = ro1.ls;
                    ResObj ro2 = ResObj.exeQ("...geheim...");
                    LinkedList<LinkedList<String>> ls2 = ro2.ls;
                    ResObj ro3 = ResObj.exeQ("...geheim...");
                    LinkedList<LinkedList<String>> ls3 = ro3.ls;
                    jta.append(ls1 + "

");
                    jta.append(ls2 + "

");
                    jta.append(ls3 + "

");
                    String s1 = trim(ls1);
                    String s2 = trim(ls2);
                    String s3 = trim(ls3);
                    jta.append(s1 + "

");
                    jta.append(s2 + "

");
                    jta.append(s3 + "

");
                    File f = new File("C:\\...geheim...\\...geheim...\\...geheim...\\...geheim...1.txt");
                    PrintWriter pw = new PrintWriter(f);
                    pw.print(s1);
                    pw.flush();
                    pw.close();
                    f = new File("C:\\...geheim...\\...geheim...\\...geheim...\\...geheim...2.txt");
                    pw = new PrintWriter(f);
                    pw.print(s2);
                    pw.flush();
                    pw.close();
                    f = new File("C:\\...geheim...\\...geheim...\\...geheim...\\...geheim...3.txt");
                    pw = new PrintWriter(f);
                    pw.print(s3);
                    pw.flush();
                    pw.close();
                } catch (Exception ex) {
                    JOptionPane.showMessageDialog(null, ex.toString() + "
" + ex.getMessage() + "
");
                }
            }

            private String trim(LinkedList<LinkedList<String>> ls) {
                int[] ia = new int[ls.size()];
                String[][] sa = new String[ls.size()][ls.get(0).size()];
                for (int i = 0; i < ls.size(); i++) {
                    for (int j = 0; j < ls.get(i).size(); j++) {
                        String s = ls.get(i).get(j);
                        if (j == 1) {
                            Pattern p = Pattern.compile("^(.+-.).*$");
                            Matcher m = p.matcher(s);
                            if (m.find()) {
                                s = m.group(1);
                            }
                        }
                        while (s.length() > 70) {
                            int r = (int) (Math.random() * 11.0) + s.length() / 2 - 5;
                            s = s.substring(0, r) + s.substring(r + 1);
                        }
                        sa**[j] = s;
                        ia[j] = Math.max(ia[j], s.length());
                    }
                }
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < sa.length; i++) {
                    for (int j = 0; j < sa**.length; j++) {
                        String s = sa**[j];
                        if (s == null) {
                            break;
                        }
                        if (j == 1) {
                            sb.append(s);
                            for (int k = s.length(); k < ia[j]; k++) {
                                sb.append(" ");
                            }
                        } else {
                            for (int k = s.length(); k < ia[j]; k++) {
                                sb.append(" ");
                            }
                            sb.append(s);
                        }
                        sb.append(" ");
                    }
                    sb.append("
");
                }
                return sb.toString();
            }
        });```

Schnell was zu Zeile 54 bis 57. Eine Zelle kann "zu lang" sein. Dann wird einfach was aus der Mitte gekürzt. Ein Text ist j nch vrstndlich, wnn Vkale fhlen.

Ich hab einfach nix mit dem EDT gemacht, wenns einfriert, frierts ein.

Weil ich jetzt StringBuilder (das ist eine Klasse) verwendet hab, kann ich leider nicht auf PrintWriter#println(Str.) zurückgreifen. Schlimm?
                    jta.append(ls1 + "

");
                    jta.append(ls2 + "

");
                    jta.append(ls3 + "

");
                    String s1 = trim(ls1);
                    String s2 = trim(ls2);
                    String s3 = trim(ls3);
                    jta.append(s1 + "

");
                    jta.append(s2 + "

");
                    jta.append(s3 + "

");

Stichworte: Schleifen, Arrays, Collections, 123

Es ist schon ein Stückchen besser, aber trotzdem muss ich nochmal meinen Tip/Hinweis geben, schau dir mal die Prinzipien von Clean Code an. Du hast noch immer viele eigene Code Duplikate. Das wird, jedenfalls bei uns im Projekt den Build (also wenn auf dem Build Server die Applikation durchgebaut wird) auf ROT setzen und das ist nie gut. Anstelle von den Code immer 3 mal aufzuschreiben, kann man das in eine Funktion auslagern und dann ruft man die Funktion mit einem Parameter auf (die muss dann 3 mal aufgerufen werden) aber nicht jeder einzelne Codeschnippsel, wie schon von @Bleiglanz angedeutet.

Du liest eine Datei bzw führst einen Befehl aus, formatierst den String, schreibst den String und das alles 3 mal. Da wäre es wie gesagt einfach daraus eine Funktion zu machen und die die Funktion und den Dateinamen übergeben bekommt. Dadurch wird dein Code lesbarer und ungefär ein drittel so lang.

mhh ein wenig, aber viel von den angemerkten Informationen hast du ja noch nicht verwendet

/* WOW COOLER KOMMENTAR */
        jb2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
			doThings("...geheim...","C:\\..geheim...1.txt");
			doThings("...geheim...","C:\\..geheim...2.txt");
			doThings("...geheim...","C:\\..geheim...3.txt");
            }
			
			private void doThings(String geheimerCodeSchnippsel, String geheimeDateiNamen){
				try {
                    ResObj ro1 = ResObj.exeQ(geheimerCodeSchnippsel); 
                    LinkedList<LinkedList<String>> ls1 = ro1.ls;
                    jta.append(ls1 + "

");
                    String s1 = trim(ls1);
                    jta.append(s1 + "

");
                    File f = new File(geheimeDateiNamen);
                    PrintWriter pw = new PrintWriter(f);
                    pw.print(s1);
                    pw.flush();
                    pw.close();
                    
                } catch (Exception ex) {
                    JOptionPane.showMessageDialog(null, ex.toString() + "
" + ex.getMessage() + "
");
                }
			}
			//...```
[QUOTE=CyborgBeta;116066]verwendet hab, kann ich leider nicht auf PrintWriter#println(Str.) zurückgreifen. Schlimm?[/QUOTE] Verstehe die Frage nicht

http://forum.byte-welt.net/sonstiges/spielwiese/16112-laut-akt-tiobe-index-ist-java-wieder-vorn-aber-ist-mit-modernen-sprache-scala-2.html#post115774

Java zählt mit zu den dutzend Programmiersprachen, die ich beherrsche

ich würd das gern etwas kürzen, aber ich weiß nicht wie

Ich hab einfach nix mit dem EDT gemacht, wenns einfriert, frierts ein.

Ich sehe schon, dass es hier kleinere Probleme gibt. Beim Java-Quelltext angefangen.

@CyborgBeta : wenn du wirklich was wissen willst, dann verwende längere Variablennamen, erkläre was dein Code eigentlich machen soll - denk doch mal an die Leute die das hier lesen: glaubst du wirklich man würde deinen Code auf Anhieb verstehen? Und sei nicht gleich wieder beleidigt - deine Autoreifen sind sicher :smiley:

[QUOTE=noob]
Verstehe die Frage nicht[/QUOTE]

Melde dich hier doch an, wenn du was nicht verstehst, von mir aus auch mit noob. So kann ich dich nicht ernstnehmen. Sry. …

Ob sich jemand anmeldet oder nicht, obliegt jedem selber. Deshalb gibt es den Gast-Account.
Wenn du jemanden nicht ernst nimmst, der als Gast postet, wirst du wohl auch von keinem anderen Hilfe erwarten können (es sei denn, der Gast trollt - aber das trifft auch für angemeldete zu).

die Frage nicht zu verstehen ist keine Auszeichnung, aber zumindest berechtigt,
anderes im noob-Posting habe mir übrigens vorher schon etwas erlaubt zu kürzen,

die Reaktion darauf ist keine richtige, CyborgBeta

die Antwort ist, dass es nicht sehr schlimm ist, zumal wenn es im Test für den eigenen Bedarf funktioniert,
theoretisch kann es aber unterschiedliche Zeilentrenner geben (
),

PrintWriter geht etwas anderes ran, das muss aber nicht automatisch heißen dass besser, je nachdem was man in der Datei haben will,
man kann evtl. PrintWriter passend einstellen, dann hilft das etwas mehr,

genauso kann man auf richtigen Zeilenumbruch bei eigenen Zusammenbau achten, wobei ziemlich manuell mitten im Code unschön,
-> es könnte eine eigene Hintergrundkomponente mit StringBuilder als Basis herauskommen, ebenso konfigurierbar,
nahe an PrintWriter in dieser Hinsicht, getrennt vom Abspeichern,
-> das könnte dann auch gleich eine Methode werden um Code nicht zu wiederholen, es geht immer voran

@CyborgBeta , du gehst ja auch nicht auf Fragen von Registrierten Usern ein, wie schon gleich als erster Post von @Timothy_Truckle gemacht wurde, sondern greifst einen Hilfsbereiten Nutzer gleich an, weswegen er wahrscheinlich garnicht weiter hilft, da du ja keine wirkliche Hilfe von Erfahrenen Entwicklern annehmen willst sondern lieber deine eigene Suppe braust, auf Ratschläge nicht eingehst, leute beleidigst,…

@SlaterB tut mir leid, das du meinen Post Zensieren musstest, ich war nur verärgert, darüber das gute Ratschläge von verschiedenen Nutzern gemacht wurden und @CyborgBeta diese wie eigentlich immer ignoriert und an anderer Stelle großspurig von seinen Javaskills prahlt. Ich gebe zu das war nicht sehr Profesionell.