1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Mitglieder
  3. Nicholas1991

Beiträge von Nicholas1991

  • Neuronales Netz, entwickelt sich wie es will

    • Nicholas1991
    • 6. Mai 2012 um 23:09
    Zitat von CwieZebra


    Naja, wenn du eine fixe Struktur hast und eine Population von 100 Netzen, die bessere Hälfte überleben lässt, die andere Hälfte durch Fortpflanzung jeweils 2 der besseren neu durch mischt, dann noch eine kleine Mutationsrate hast, wo du aber doch das ganze Netz neuinitialisierst (mit Random-Werten). Dann sollte es auch irgendwann auf eine bessere Lösung konvergieren. (Zumindest würde ich mir das erwarten. Mit den gewählten Parametern kann man sich natürlich ewig rumspielen. Dafür braucht man bei solchen genetischen Algorithmen fast nichts wissen.)

    Hmm, ich werde es weiter probieren ^^. Also jetzt erst mal fixe Struktur ok.


    Zitat von CwieZebra


    Naja, aber du weißt ja nicht, ob sich die durchgesetzte Struktur überhaupt eignet, das Problem noch zu lösen. Möglicherweise kann es dann auch nicht mehr durch einen Wechsel der Fortpflanzungsstrategie trainiert werden.

    Da hast du recht. Ich gehe wie s.o. vor.


    Danke schonmal

  • Neuronales Netz, entwickelt sich wie es will

    • Nicholas1991
    • 6. Mai 2012 um 22:44
    Zitat von CwieZebra

    Verständnisfragen:
    Was meinst du mit "Struktur"? (Die Anzahl der versteckten Ebenen? Die Anzahl der Neuronen?)

    Also mein Vorgehen ist ja so, dass ich zwei Netze vergleiche, das stärkere (mehr gelöste Aufgaben) nehme und dann mit einer gewissen Zufälligkeit, die vom Verhältnis der Stärken abhängt, einzelne Werte mutiere.
    Das heißt, dass irgendwann natürlich alle Netze die gleiche Anzahl Ebenen und Neuronen hat. Das meinte ich mit Struktur. Denn es wundert mich, dass das testen der Netze immer schneller geht, je weniger unterschiedliche Strukturen (anzahl Ebenen und Neuronen) ich habe. Obwohl die Anzahl an Operationen die für jede Generation durchgeführt werden müssen immer gleich ist! (Logisch da: Gleich viele Netze pro Generation, für jedes Netz stumpfer Algorithmus, der das Ausgangssignal ausgibt).


    Zitat von CwieZebra

    Verständnisfragen:
    Was meinst du mit "gleich viele Aufgaben [lösen]"?

    Ich habe 40 Bilder: 20 X-Bilder und 20 O-Bilder. Jedes Netzt bekommt diese Bilder gegeben und soll mir sagen ob es ein X oder ein O ist. Heißt also 40 "Aufgaben". Gelöst ist die Aufgabe natürlich, wenn das Bild richtig interpretiert wurde. Die Fitness ergibt sich dann also durch: #(richtig erkannt)/#(gesamt).


    Zitat von CwieZebra


    Es wäre mE sinnvoller, die Konvergenzrate fixer Strukturen zu testen und dann die am schnellsten konvergierende Struktur auszuwählen.

    Das Problem ist, dass bei mir nicht mal fixe Strukturen konvergieren. Durch die zufällige Permutation wird das Ergebnis jedesmal wieder beliebig schlecht oder gut (obwohl ich nur gaaaaanz wenig zufällig permutiere).
    Und die Idee war natürlich auch, dass sich die bessere Struktur bei den ersten paar Generationen durchsetzt und ich dann automatisch mit einer halbwegs brauchbaren arbeite. Es setzt sich zwar eine Struktur durch, jedesmal wenn ich das Programm starte (siehe vorigen Post von mir). Das Problem ist nur, dass danach eben nichts mehr konvergiert und sich alles äußerst für mich unerklärlich verhält (siehe vorigen Post).

    Ich gebe zu ohne Code ist hier wohl nur raten möglich, aber ich muss mal gucken ob ich den Code soweit zusammenschneiden kann, dass jemand überhaupt Lust hat da reinzuschauen ^^.

  • Neuronales Netz, entwickelt sich wie es will

    • Nicholas1991
    • 21. April 2012 um 20:53

    Hallo Leute,

    Folgendes:
    Ich wollte ein Programm schreiben, dass selber lernt ein handschriftliches "X" von einem handschriftlichen "O" zu unterscheiden. Grundidee hierbei war soetwas wie Neuronale Netze zu verwenden. Ich hab also meine Eingänge (4096 Stück (64x64 Pixel) als boolean (schwarz oder weiß)) und dann ein in Ebenen gegliedertes Netz, was letzlich in einem Ausgangs-Neuron mündet.
    Jedes Neuron hat dabei einen Eingang für Signale von jedem Neuron aus der Vorgängerebene. Jedes dieser Signale ist an einen Multiplikator gekoppelt, der dem Signal mehr oder weniger Gewicht geben kann. Dann werden also die ganzen Multiplikatoren zusammenaddiert (true => +multi, false => -multi) und wenn ein Grenzwert überschritten wurde, dann sendet das Neuron true weiter, sonst false. Am Ende spuckt also das Ausgangsneuron true (für X) oder false (für O) aus.
    Jetzt starte ich mit sagen wir 100 zufällig generierten Netzen. Anschließend teste ich ihre Fähigkeit die Bilder zu unterscheiden. Der Fitnesswert ergibt sich einfach als Summe der gelösten Bilder (und die Nachkommastellen aus der Anzahl der Neuronen, aber der Betrag ist momentan unerheblich). Habe ich alle Fitnesswerte bestimmt, möchte ich die nächste Generation erzeugen. Dafür nehm ich mir je zwei Netze (zufällig, aber keines zwei mal) und übernehme für das neue Netz die Struktur des besseren. Anschließend ergibt sich aus dem Quotient aus der Fitness des schwächeren durch die Fitness des stärkeren eine Wahrscheinlichkeit für eine Mutation (die Struktur bleibt aus Einfachheitsgründen starr, nur die Zahlenwerte wie Multiplikatoren und Grenzwerte mutieren) die dann aus dem Gewichteten Mittel besteht - mit der Fitness zum Quadrat als Gewicht. Zusätzlich kann noch mit einer gaaanz kleinen Wahrscheinlichkeit, zufällig ein Wert mutieren.

    Treibe ich das Spiel jetzt mit sagen wir 500 Generationen passiert folgendes:

    • Die Anfangsgeneration ist recht symmetrisch um 50% Erfolg verteilt mit einem Spitzenreiter um die 80% i.d.R..
    • Mit zunehmender Generations-nummer dünnt die Verteilug aus (was ja denkbar ist, weil immer die bessere Struktur übernomme wird und somit keine so große Vielseitigkeit existiert! Allerdings sind die auftretenden Peaks zufällig und chaotisch.
    • Je mehr die Peak ausdünnen, desto schneller testet das Programm die Generationen durch, obwohl ich etwas derartiges nicht implementiert habe! Im Extremen heißt das, sobald nur noch ein Peak da ist, braucht er nur noch 1 Sekunde pro Generation (je nach Anfangseinstellungen) während er für die ersten noch gut 30 Sekunden gebraucht hat.
    • Existiert nur noch ein Peak (alle Netze lösen gleich viele Aufgaben), so gibt es zwei deutlich zu erkennende Schwerpunkte um die jede Generation scheinbar zufällig streut (25% ud 70%) (also immer wechselnd, da ja jede Generation nur noch einen Peak aufweist).

    Folgende Fragen stell ich mir deshalb:

    • Wie muss ich die Netze mutieren lassen, damit ich halbwegs konvergentes Verhalten gegen einen Wert von über 50% habe (vorzugsweise über 90% ^^)?
    • Ist Java tatsächlich so genial zu erkennen, dass irgendwann nur noch eine Struktur vorliegt, sodass mein Programm deshalb auf einmal so schnell arbeitet, oder muss ein Programm-Fehler vorliegen?
    • Wenn alle Netze die gleiche Struktur haben und deshalb alle Fragen gleich beantworten, wie kann es dann sein, dass wenn ich einzelne mutiere, trotzdem alle Netze immer noch die gleiche Anzahl an Fragen beantworten, die aber deutlich von der vorigen Generation abweicht!

    Vielen Dank für Tipps und Hinweise :)


    P.S.: Ich verwende momentan 20 X und 20 O Bilder.

  • Unlimited Strength JCE

    • Nicholas1991
    • 19. Februar 2011 um 21:52

    Danke, werde ich gleich mal ausprobieren.

  • Unlimited Strength JCE

    • Nicholas1991
    • 19. Februar 2011 um 20:07

    Hallo Leute,

    ich schreibe gerade an einem Programm wo ich etwas mit Verschlüsselung rumspiele. Jetzt ist Java ja bei AES standardmäßig begrenzt auf 128-bit aus welchen Gründen auch immer. Mein Programm soll jetzt, damit garantiert ist, dass es auch mit 192 und 256-bit funktioniert, automatisch die neuen policies installieren (keine Angst, das Programm ist nur für mich und meine Freunde).
    Jetzt ist es ja so, dass wenn ein jdk installiert ist, dass dann dort nach den Policy-Files gesucht wird, sonst im normalen JRE Ordner:

    Zitat

    It is determined based on whether you are running JCE on a JRE with or without the JDK installed. The JDK contains the JRE, but at a different level in the file hierarchy.


    Meine Frage ist, wie ich den

    Zitat

    <java-home>

    Ordner herausfinde, da nicht auf jedem System die Umgebungsvariable für Java eingetragen ist.
    Außerdem stellt sich mir die Frage, wie ich auf Updates von Java reagieren soll? Da ich nicht weiß ob sich der Ordner eventuell ändert. Und zudem möchte ich eigentlich mein Progamm so gestalten, dass es nichts außerhalb des Ordners ändert, aus dem es ausgeführt wird.

    Gibt es vielleicht eine Möglichkeit die Policies zum Start des Programmes mit einzubinden?

    LG und Danke im Voraus

  • JFrame wird schwarz - Kann nichts mit Java machen

    • Nicholas1991
    • 19. Februar 2011 um 19:53

    Danke für euer Bemühen aber ich hab Win7 einfach neu aufgesetzt. Alles in allem nur 2h Arbeit und der Rechner war wieder fit und einsatzbereit.

  • JFrame wird schwarz - Kann nichts mit Java machen

    • Nicholas1991
    • 10. Februar 2011 um 11:27

    Hab ich schon, hat nichts gebracht :frowning_face:

  • JFrame wird schwarz - Kann nichts mit Java machen

    • Nicholas1991
    • 9. Februar 2011 um 20:13

    Keiner ne Idee?

  • JFrame wird schwarz - Kann nichts mit Java machen

    • Nicholas1991
    • 5. Februar 2011 um 21:38

    Hallo Leute,

    hab seit kürzerem ein seeeehr nerviges Problem mit Java. Wenn ich z.B. Maple oder ein eigenes Gui-Programm starte, dann wird das zwar angezeigt, aber sobald sich auf dem Gui etwas ändert, wird es einfach schwarz und bleibt schwarz. Mauserkennung, wenn man die Position der Button errät funktioniert noch. Oder aber (in Maple vorallem) hat Java einfach Probleme den Bildschirminhalt zu aktualisieren.
    Bräuchte dringend Hilfe, weil im Netz irgendwie nichts zu steht.

    LG

    Nicholas

    P.S.:
    Java 6 u 23
    Win7 64bit

  • Postinkrement in Java

    • Nicholas1991
    • 16. Dezember 2010 um 18:42

    Hallo Leute,

    ich hab hier mal ein interessantes Problem zum Postinkrement wie ich finde. Gleich zu Anfang: Ja, ich weiß der Code unten ist weder hübsch noch sinnvoll ^^. Aber es geht hier mehr ums Verständnis wann der Postinkrement-Operator "aktiv" wird.

    Unten der Code gibt aus (bevor lange geraten wird): 9

    Also ist meine Sicht der Dinge:

    • Auf die Variable c wird erst mal 0 addiert, weil der Postinkrement Operator zunächst den Zugriff auf die Variable abwartet.
    • Während dem Vergleich ist c offensichtlich auch noch nicht inkrementiert worden, da ==1 mit false angegeben wird. Deshalb wird 9+c zurückgegeben.
    • Da die Position 9 im Array ausgelesen wurde, wurde auch zu diesem Zeitpunkt noch nicht inkrementiert.
    • Jetzt findet die Zuweisung statt und c ist und bleibt 9. Wo hat jetzt die Inkrementierung stattgefunden?

    Welche Zeichen im Code dienen Java als Signal dafür, dass inkrementiert werden sollte?

    Code
    public class TEST {
        public static void main(String[] args) {
            int[] a = {0,1,2,3,4,5,6,7,8,9,10};
            int c = 0;
            c = a[ ((c += c++)==1 ? 5+c:9+c) ];
            System.out.println(c);
        }
    }
  • JTree formatieren

    • Nicholas1991
    • 13. Dezember 2010 um 00:16

    Perfekt. Genau wonach ich gesucht hab :).

    Vielen Dank

  • JTree formatieren

    • Nicholas1991
    • 13. Dezember 2010 um 00:06

    Hallo Leute,

    ich würde gerne einen JTree benutzen um eine Liste von Dateien vernünftig mit ihren Überordnern anzuzeigen. Soweit kein Problem. Jetzt hätte ich aber gerne noch zusätzlich rechtsbündig die Dateigröße auf der jeweiligen Höhe des Blattes oder Knotens. Zusammen mit den horizontalen Linien die man da einstellen kann säh das bestimmt sehr nett aus.
    Also so etwa (nur mit horizontalen linien eben und icons etc.):

    Code
    Gesamt         5MB
        Ordner1    3MB
           Datei1  1MB
           Datei2  2MB
        Datei2     2MB



    Ich hab versucht es über setCellRenderer(myRenderer) zu lösen, aber leider streckt der mein Panel, dass ich zurückgebe, nicht über den gesamten Viewport...

    Hat da jemand eine Idee? Vielleicht auch wie man es vielleicht sonst mit nem JTable machen könnte, sodass man da auch den Einschub immer entsprechend hat? Also die Icons auch eingeschoben sind?

  • Java fatal error der JVM

    • Nicholas1991
    • 9. August 2010 um 22:02

    Das nimmt aber das ganze Tetris-feeling, wenn der Sound hinterher hinkt. Hmm... so schnell ist wohl nicht mit ner Lösung zu rechnen wenn ich jetzt den Bug-report sende :shinner:, muss das wohl irgendwie anders in den Griff bekommen. Mal schauen. Ich meld mich wenn ich nen sinnvollen Workaround gefunden habe.

  • Java fatal error der JVM

    • Nicholas1991
    • 9. August 2010 um 13:05

    Das Problem

    Zitat


    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000000006d5c3ec6, pid=4252, tid=644
    #
    # JRE version: 6.0_21-b07
    # Java VM: Java HotSpot(TM) 64-Bit Server VM (17.0-b17 mixed mode windows-amd64 )
    # Problematic frame:
    # C [jsound.dll+0x13ec6]
    #
    # An error report file with more information is saved as:
    # E:\Java\Projekte\Tetris\hs_err_pid4252.log
    #
    # If you would like to submit a bug report, please visit:
    # http://java.sun.com/webapps/bugreport/crash.jsp
    # The crash happened outside the Java Virtual Machine in native code.
    # See problematic frame for where to report the bug.
    #

    Alles anzeigen



    Und hier wie es dazu kommt:
    Ich habe ein Tetris spiel für mich und meine Freunde, Verwandte etc. programmiert mit dem man seinen Highscore online hochladen und dann vergleichen kann. Das Spiel läuft super auf Windows XP und Vista. Unter Windows 7 (x64 getestet) kommt es allerdings immer zu abstürzen. Und zwar immer dann, wenn der aktuell zu platzierende Klotz zu schnell hintereinander gedreht wird. Denn jedes mal wenn sich der Klotz dreht, wird ein Klick-Sound abgespielt. Das scheint zum Absturz zu führen, da:

    Zitat

    # Problematic frame:
    # C [jsound.dll+0x13ec6]



    Ein Beispiel-Programm liegt im Anhang.

    Hier der Thread der jedes Mal aufgerufen wird, wenn der Block gedreht wird:

    Code
    public class PlayWaveThread extends Thread {
        private String filename;
        private final int BUFFER_SIZE = 524288; // 128Kb
        public PlayWaveThread(String filePath) {
            filename = filePath;
        }
        public void run() {
            File soundFile = new File(filename);
            if (!soundFile.exists()) {
                System.err.println("Wave file not found: " + filename);
                return;
            }
            AudioInputStream audioInputStream = null;
            try {
                audioInputStream = AudioSystem.getAudioInputStream(soundFile);
            } catch (Exception e) {
                e.printStackTrace();
                return;
            }
            AudioFormat format = audioInputStream.getFormat();
            SourceDataLine audioLine = null;
            DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
            try {
                audioLine = (SourceDataLine) AudioSystem.getLine(info);
                audioLine.open(format);
            } catch (Exception e) {
                e.printStackTrace();
                return;
            }
            audioLine.start();
            int bytesRead = 0;
            byte[] audBuffer = new byte[BUFFER_SIZE];
            try {
                while ( (bytesRead=audioInputStream.read(audBuffer, 0, audBuffer.length)) != -1 ) {
                    audioLine.write(audBuffer, 0, bytesRead);
                }
                audioInputStream.close();
            } catch (Exception e) {
                e.printStackTrace();
                return;
            } finally {
                audioLine.drain();
                audioLine.close();
            }
        }
    }
    Alles anzeigen



    Ist ja im Prinzip das, was man überall im Internet zu Java und Sound findet, hab da das Rad jetzt nicht neu erfunden.
    Und wie gesagt, das Poblem trat bisher NUR bei Win7 x64 auf. Sowohl mit Onbard-Sound als auch mit Soundkarte (Realtek HD und Creative X-Fi).

    Freu mich auf eure Ideen :grinning_squinting_face:

  • JTextField "Hintergrundtext"

    • Nicholas1991
    • 29. April 2010 um 20:28

    Naja, es geht ja auch nicht um meinen eigenen Anspruch und um das Projekt in das ich die Komponente eingebaut habe sondern eher ums Prinzip soetwas mal gemacht zu haben ^^.

  • JTextField "Hintergrundtext"

    • Nicholas1991
    • 27. April 2010 um 22:01

    Eigentlich war ich ja ganz zufrieden mit meiner Klasse :grinning_face_with_smiling_eyes:
    ABER irgendwie ist das nicht ganz so geschickt gelöst, wenn die ganzen UI Werte in der Klasse sind. Wenn jetzt jemand die Klasse verwenden wollen würde aber sein GUI nur eigene UIs verwendet, dann ist das ja ziemlich unsauber, wenn er jetzt trotzdem bei jedem erstellten ChatTextField die Farbwerte angeben muss. Also muss ja wohl irgendwie eine UI Klasse her. Das Problem ist: Ich habe keine Ahnung wie ich das realisieren kann. Ob mir da jemand helfen möchte? Ich hab auch den SourceCode vom JTextField und JTextFieldUI aber irgendwie blick ich nicht ganz durch, weil da anscheinend so viel vererbt wurde, dass die Klassen halb leer sind und ich keine Methoden finde, die irgendwas mit Hintergrundfarbe oder so zu tun haben.

  • JTextField "Hintergrundtext"

    • Nicholas1991
    • 20. April 2010 um 19:05

    Oh der funktioniert ganz ausgezeichnet kann ich dir sagen ^^.

  • JTextField "Hintergrundtext"

    • Nicholas1991
    • 19. April 2010 um 20:39

    Hier mal die Überarbeitete Version.
    Meintest du das so mit dem Hintergrund?

    das mit dem this()-Aufruf ging beim zweien Konstruktor nicht, weil ich da schon Methoden der Superklasse aufrufe. Und da muss dann erst der Super-Konstruktor aufgerufen werden. Dann kann aber nicht mehr der this() aufruf folgen ^^. Also muss ich da etwas mehr tippen.

    PHP
    import javax.swing.event.DocumentEvent;
    import javax.swing.event.DocumentListener;
    import javax.swing.JTextField;
    import java.awt.Color;
    import java.awt.event.FocusListener;
    import java.awt.event.FocusEvent;
    import java.awt.Font;
     
    public class ChatTextField extends JTextField implements DocumentListener, FocusListener {
        private static final long serialVersionUID = 1l;
        private boolean textIsEmpty = true;
        private Color hasFocusForeground;
        private Color hasFocusBackground;
        private Font hasFocusFont;
        private String emptyStringReplacement;
        private Color emptyStringForeground;
        private Color emptyStringBackground;
        private Font emptyStringFont;
     
        public ChatTextField() {
            this("Eingabe", Color.GRAY);
        }
     
        public ChatTextField(String emptyStringReplacement, Color emptyStringForeground) {
            this.emptyStringReplacement = emptyStringReplacement;
            this.emptyStringForeground = emptyStringForeground;
            this.emptyStringBackground = getBackground();
            this.emptyStringFont = getFont();
            hasFocusForeground = getForeground();
            hasFocusBackground = getBackground();
            hasFocusFont = getFont();
            setFormat();
            addFocusListener(this);
        }
     
        public ChatTextField(String emptyStringReplacement, Color emptyStringForeground,
                            Color emptyStringBackground, Font emptyStringFont) {
            this.emptyStringReplacement = emptyStringReplacement;
            this.emptyStringForeground = emptyStringForeground;
            this.emptyStringBackground = emptyStringBackground;
            this.emptyStringFont = emptyStringFont;
            hasFocusForeground = getForeground();
            hasFocusBackground = getBackground();
            hasFocusFont = getFont();
            setFormat();
            addFocusListener(this);
        }
     
        private void setFormat() {
            if(!hasFocus()) {
                if(textIsEmpty) {
                    super.setText(emptyStringReplacement);
                    super.setForeground(emptyStringForeground);
                    super.setBackground(emptyStringBackground);
                    super.setFont(emptyStringFont);
                } else {
                    super.setForeground(hasFocusForeground);
                    super.setBackground(hasFocusBackground);
                    super.setFont(hasFocusFont);
                }
            } else {
                if(textIsEmpty) {
                    super.setForeground(hasFocusForeground);
                    super.setBackground(hasFocusBackground);
                    super.setFont(hasFocusFont);
                    super.setText("");
                }
            }
        }
     
        public void changedUpdate(DocumentEvent e) {
            textIsEmpty = false;
        }
     
        public void insertUpdate(DocumentEvent e) {
            textIsEmpty = false;
        }
     
        public void removeUpdate(DocumentEvent e) {
            textIsEmpty = super.getText().isEmpty() ? true : false;
        }
     
        public void focusGained(FocusEvent e) {
            setFormat();
            getDocument().addDocumentListener(this);
        }
     
        public void focusLost(FocusEvent e) {
            getDocument().removeDocumentListener(this);
            setFormat();
        }
        public void setEmptyStringReplacement(String emptyStringReplacement) {
            this.emptyStringReplacement = emptyStringReplacement;
            setFormat();
        }
     
        public void setEmptyStringForeground(Color emptyStringForeground) {
            this.emptyStringForeground = emptyStringForeground;
            setFormat();
        }
     
        public void setEmptyStringBackground(Color emptyStringBackground) {
            this.emptyStringBackground = emptyStringBackground;
            setFormat();
        }
     
        public void setEmtpyStringFont(Font emptyStringFont) {
            this.emptyStringFont = emptyStringFont;
            setFormat();
        }
     
        public void setForeground(Color foreground) {
            hasFocusForeground = foreground;
            setFormat();
        }
        public void setBackground(Color background) {
            hasFocusBackground = background;
            setFormat();
        }
     
        public void setFont(Font font) {
            hasFocusFont = font;
            setFormat();
        }
     
        public void setText(String text) {
            if(text.isEmpty()) {
                textIsEmpty = true;
                setFormat();
            } else {
                super.setText(text);
                textIsEmpty = false;
                setFormat();
            }
        }
     
        public String getText() {
            return !textIsEmpty ? super.getText() : "";
        }
    }
    Alles anzeigen
  • JTextField "Hintergrundtext"

    • Nicholas1991
    • 16. April 2010 um 17:35

    Gut, guck ich nochmal. Natürlich ist auch stilistisches Verbessern wichtig.
    Hat jemand Verbesserungen für die Attribute und Variablen (bzw. benennung). Gibt es da irgendwelche Worte, die man häufig verwendet (ENG/DEU).

  • JTextField "Hintergrundtext"

    • Nicholas1991
    • 15. April 2010 um 21:23

    Hat denn hier keiner eine Meinung ;). Kann ja nicht sein, dass das der Weisheit letzter Schluss ist...

Rechtliches

Impressum

Datenschutzerklärung