# Scrollbar JTextArea



## pulse (19. Feb 2011)

Hallo,

hab ein kleines Problem. Möchte einen ScrollBar zu einem JTextArea hinzufügen. Leider verschwindet dann die JTextArea immer.Keine Ahnung was ich falsch mache. Hab schon sämtliche Variationen ausprobiert ....ohne Erfolg.


```
public class Irgendwas extends JApplet implements ActionListener {
JTextArea textareaErgebnis = new JTextArea("",10,53);

public void init() {


GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
setLayout(gbl);

gbc.gridx = 0;
gbc.gridy = 9;
gbc.gridwidth = 4;
gbc.gridheight = 1;
gbc.anchor = GridBagConstraints.EAST;
gbl.setConstraints(textareaErgebnis, gbc);
add(textareaErgebnis);
textareaErgebnis.setEditable(false);
}
public void actionPerformed(ActionEvent arg0) {
	// TODO Auto-generated method stub
	
}

}
```


----------



## Michael... (19. Feb 2011)

Du suchst JScrollPane:
How to Use Scroll Panes (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)


----------



## pulse (19. Feb 2011)

ja...super....10 Kilo lesen, danach funzt es immer noch nicht...tolle antwort..thx


----------



## Final_Striker (19. Feb 2011)

Vielleicht solltest du dann besser lesen. 

Du brauchst eine ScrollPane. Da rein kommt die TextArea.
http://www.leepoint.net/notes-java/GUI/components/40textarea/25ex-textarea.html


----------



## Runtime (19. Feb 2011)

Du benutzt eine JTextArea, aber das Applet ist AWT. Du musst die Klasse von JApplet ableiten, weil AWT Komponenten alle heavyweight sind und somit alle leightweight-Komponenten(Swing) überdecken.
Btw:


pulse hat gesagt.:


> ja...super....10 Kilo lesen, danach funzt es immer noch nicht...tolle antwort..thx



Nicht gerade toll, wenn Dir jemand hilft und Du ihn danach so anblöckst. Die Antwort ist übrigens hilfreich.


----------



## pulse (19. Feb 2011)

Liebe Leute,

ich habe sämtliche Variationen(JApplet, JScrollpane, TextArea in Scrollpane eingefügt usw...usw...usw) ausprobiert. Ohne Erfolg. Der Code steht doch net umsonst da. Wenn also einer weiss wie es funzt, dann schreibts doch einfach hin.


----------



## Runtime (19. Feb 2011)

pulse hat gesagt.:


> Der Code steht doch net umsonst da.


Der Code ist nichtmal vollständig.


----------



## pulse (19. Feb 2011)

jetzt issers


----------



## Runtime (19. Feb 2011)

Das Layout stimmt nicht.


----------



## pulse (19. Feb 2011)

Du meinst das einfügen des JScrollpane funktioniert wegen des Layouts nicht oder allgemein sei das Layout falsch...denn es läuft soweit bei mir.


----------



## Runtime (19. Feb 2011)

Der Code oben hat nicht funktioniert, bis ich ein BorderLayout genommen hab, dann tat er es.
Edit:

```
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;


public class Irgendwas extends JApplet implements ActionListener {

    JTextArea textareaErgebnis = new JTextArea("", 10, 53);

    @Override
    public void init() {
        setLayout(new BorderLayout());
        add(textareaErgebnis, BorderLayout.CENTER);
        textareaErgebnis.setEditable(true);
    }

    public void actionPerformed(ActionEvent e) {
    }
}
```


----------



## pulse (19. Feb 2011)

Siehst Du...genau das wollte ich vermeiden, denn es sind noch verschiedene andere Elemente vorhanden. Das ist jetzt nur ein spezielles Element gewesen. Aber echt....vielen, vielen Dank für Deine Hilfe bis hierher. Ich versuch das ganze mal mit Borderlayout und hoffe es verhunzt mir die gesamte Anordnung nicht, denn die ist mir so wichtig.


----------



## Runtime (19. Feb 2011)

Warum nimmst du keinen GUI-Builder?


----------



## pulse (19. Feb 2011)

Welchen empfiehlst Du mir denn? Leider hab ich Eclipse Europa und der GUI Builder den ich kenn, dessen Name mir jetzt nicht einfällt, läuft darauf nicht.


----------



## Runtime (19. Feb 2011)

Ich benutze den von Netbeans.


----------



## pulse (19. Feb 2011)

Lade den gerade runter.Bin mal gespannt. Ich bin echt ein be***ner Gui Programmierer. Danke für den Tip, hoffe das Teil ist nicht all zu kompliziert.


----------



## pulse (19. Feb 2011)

Das Programm ist Super. Nur leider steht im Sourcecode was von org.jdesktop.layout.GroupLayout...wo bekommt man das denn her?


----------



## Runtime (19. Feb 2011)

Ersetz es mal durch javax.swing.GroupLayout.


----------



## pulse (19. Feb 2011)

Klappt fast....add(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)...hier muckt er rum und sagt das diese Methode für JScrollpane undefiniert sei. Ansonsten klappt es ...ich kann es gar nicht glauben wie easy das geht.

Ach so...das scheint was mit diesem "createParallelGroup"-Dingens zu tun zu haben.


----------



## pulse (19. Feb 2011)

Vielleicht kann Runtime das mal bei sich laufen lassen und mir mal sagen was da los ist..denn ich verstehs nicht, und bis ichs verstanden habe ist ne neue Programmiersprache erfunden worden.


```
public class Test extends JApplet {

    /** Initializes the applet ADFGVX */
        public void init() {
        try {
            EventQueue.invokeAndWait(new Runnable() {

                public void run() {
                    initComponents();
                }
            });
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    /** This method is called from within the init() method to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jTextField1 = new javax.swing.JTextField();
        jTextField2 = new javax.swing.JTextField();
        jTextField3 = new javax.swing.JTextField();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();

        jButton1.setText("jButton1");

        jButton2.setText("jButton2");

        jTextField1.setText("jTextField1");

        jTextField2.setText("jTextField2");

        jTextField3.setText("jTextField3");

        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jScrollPane1.setViewportView(jTextArea1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .add(layout.createSequentialGroup()
                .add(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .add(layout.createSequentialGroup()
                        .add(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 123, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .add(18, 18, 18)
                        .add(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .add(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .add(jButton2, javax.swing.GroupLayout.PREFERRED_SIZE, 63, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .add(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 431, Short.MAX_VALUE)
                    .add(jTextField2, javax.swing.GroupLayout.DEFAULT_SIZE, 431, Short.MAX_VALUE)
                    .add(jTextField3, javax.swing.GroupLayout.DEFAULT_SIZE, 431, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .add(layout.createSequentialGroup()
                .add(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .add(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .add(layout.createSequentialGroup()
                        .add(jButton1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .add(jButton2)))
                .add(17, 17, 17)
                .add(jTextField1,javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .add(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .add(jTextField3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(106, Short.MAX_VALUE))
        );
    }// </editor-fold>
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JTextField jTextField3;
    // End of variables declaration
}
```


----------



## Runtime (20. Feb 2011)

Weiss es leider auch nicht, aber nimm den Code nochmal vom Netbeans und füge deinem Projekt die jar, die du unter folgendem Pfad findest: NetBeans_installation_folder/platform/modules/ext/swing-layout-1.0.4.jar zu deinem Projekt hinzu.


----------



## pulse (20. Feb 2011)

Ja, diesen Tip hab ich schon erhalten...nur arbeite ich mit mac os daher weiss ich nicht wo da der Pfad liegen soll.


----------



## Runtime (20. Feb 2011)

Dort wo Mac die Programme installiert, mehr weiss ich auch nicht...


----------



## pulse (20. Feb 2011)

Hab natürlich auch win aufm mac...Aber vielen,vielen Dank Runtime für Deinen Tip und Deine Hilfe!!


----------

