Java Applet



  • Jetzt hab ich mir die Sachen doch selber zusammengeschrieben...

    Egal, ich schreib meine GUIs immer von Hand 🙂

    Zu der JTextArea ein kleines Beispiel:

    JPanel pcenter0 = null;
    JScrollPane jScrollPane1 = null;
    JTextArea jTextArea1 = null;
    
    getContentPane().add(pcenter0 = new JPanel(new BorderLayout()),"Center");
    pcenter0.add(jScrollPane1 = new JScrollPane(), "Center");
    jScrollPane1.setViewportView(jTextArea1 = new JTextArea());
    jTextArea1.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED));
    
    jTextArea1.setTabSize(4);
    jTextArea1.setFont(new java.awt.Font("Courier", 0, 14));
    jTextArea1.setCaretColor(Color.red);
    jTextArea1.setLineWrap(true);
    jTextArea1.setWrapStyleWord(true);
    

    Jetzt zum Array, so müsste es eigentlich gehen:

    String arr[] = new String[5];
    
    for (int i=0;i<arr.length;++i) {
      arr[i] = new String("");
    }
    

    Dein Fehler war (soweit ich dass sehe), dass du sSolution 2x deklariert hast.va]



  • Zu der JTextArea ein kleines Beispiel

    Hmm, wenn ich das so mache:

    public void InitLog()
        {   
            getContentPane().add(pcenter0 = new JPanel(new BorderLayout()),"Center"); 
            pcenter0.add(jScrollPane1 = new JScrollPane(), "Center"); 
            jScrollPane1.setViewportView(txtLog = new JTextArea()); 
            txtLog.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED)); 
            txtLog.setLineWrap(true); 
            txtLog.setWrapStyleWord(true);
            txtLog.setBounds(5, 5, 590, 145);
        }
    

    ... dann funktioniert die setBound Funktion nicht 😕 (die TextArea nimmt den gesamten Platz ein) Woran liegt das?



  • Wir haben die JTextArea als einziges Child der JScrollPane hinzugefügt, und die liegt mit "Center" im BorderLayout von pCenter0, welches den ganzen Platz im contentPane einnimmt. Deshalb.
    Du scheinst nicht so der Swing-Experte zu sein. Vllt. nimmst du doch lieber einen GUI-Designer?



  • Du scheinst nicht so der Swing-Experte zu sein

    Bis gestern wusste ich nicht mal, was Swing ist 😞
    Ich hab halt keine Ahnung von Java, das was ich hinbekomme, kann ich nur, weil vieles ähnlich wie in C++ ist.

    Vllt. nimmst du doch lieber einen GUI-Designer?

    Da müsste ich mich wahrscheinlich auch noch reinarbeiten... Das lohnt sich jetzt nicht mehr, die GUI ist ja fertig, bis auf die ScrollBar der TextArea. Könntest du mir nicht einfach sagen, was ich ändern muss, damit man die TextArea platzieren kann? (*bettel bettel bettel*) Ich weiß, so etwas ist in diesem Forum verpönt, ich verspreche auch, dass ich mich näher mit der Materie beschäftige, wenn ich irgendwann in meinem Leben zum 2. Mal zum schreiben eines Applets überredet werden sollte...



  • Willst du die JTextArea exakt positionieren? Dann setze für das pcenter0 ein NullLayout, denk dran, du positionierst die JTextArea über die JScrollPane, denn wo die JScrollPane hingeht, da geht auch die JTextArea als child-Widget hin 🙂



  • Noch was für die Zukunft: NullLayout ist eigentlich dreck, mit dem Grid[Bag] - und BorderLayout lassen sich wunderbare Oberflächen erstellen, die auch sehr flexibel sind, deshalb nimmt man ja solche Container.



  • Sorry, aber so hilft mir das noch nicht weiter. Was ist ein NullLayout? (*duck*)
    Heißt das einfach, dass man gar kein Layout benutzt?

    public void init()
        {   
            add(jScrollPane1 = new JScrollPane(), "Center"); 
            jScrollPane1.setViewportView(txtLog = new JTextArea()); 
            txtLog.setBounds(10,10, 200,200);
        }
    

    So funktioniert es noch nicht...



  • Ein NullLayout heißt einfach, dass du selber für die Positionierung verantwortlich bist, bei einem BorderLayout wird das automatisch gemanaged:
    Und hier der Code (deine Einrückung ist echt ätzend 😉 ).

    public void InitLog()
        {  
            getContentPane().add(pcenter0 = new JPanel(new NullLayout()),"Center"); //Hier, NullLayout gesetzt
            pcenter0.add(jScrollPane1 = new JScrollPane());
            jScrollPane1.setViewportView(txtLog = new JTextArea());
            txtLog.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.LOWERED));
            txtLog.setLineWrap(true);
            txtLog.setWrapStyleWord(true);
    
            //Hab ich nicht gesagt, du sollst die JScrollPane postitionieren?
            jScrollPanel.setBounds(5, 5, 590, 145);
        }
    

    So, ich geh jetzt Abendessen, bis morgen in alter Frische.

    Mfg

    GPC



  • Ganz so hat es nicht funktioniert: Unknown Identifier: NullLayout
    Hätte ich vielleicht noch irgendwas importen müssen...

    Naja ich hab es jetzt so:

    public void init()
        {   
            setLayout(null);
            add(jScrollPane1 = new JScrollPane(), "Center"); 
            jScrollPane1.setViewportView(txtLog = new JTextArea()); 
            jScrollPane1.setBounds(5, 5, 590, 145);
        }
    

    Und da es funktioniert, bin ich endlich zufrieden 🙂
    Vielen Dank für deine Hilfe.



  • snOOfy schrieb:

    Ganz so hat es nicht funktioniert: Unknown Identifier: NullLayout
    Hätte ich vielleicht noch irgendwas importen müssen...

    Nein, war mein Fehler. Eigentlich benutzt man NullLayout nur als Synonym für setLayout(null), das hatte ich gestern vergessen zu sagen und zu schreiben.


Anmelden zum Antworten