Scrollbar

Flooow

Mitglied
Guten Morgen ,
Ich hab ein Problem mit meiner Scrollbar.
Ich denke ich hab alles reingeschreiben was nötig ist, jedoch erscheint keine Scrollbar

Mein Code, bei dem Textarea "ergebnis" soll die Scrollbar erscheinen

Code:
import java.awt.*;
import java.awt.event.*;
import java.io.IOException;
import java.util.*;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JScrollBar;
import java.awt.Dimension;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 03.05.2011
  * @author
  */


public class guitele extends JFrame {
  String csv_path;  //  @jve:decl-index=0:
  // Anfang Attribute
  private JTextField eingabe = new JTextField();
  private JButton einlesen = new JButton();
  private JButton suchebutton = new JButton();
  private JButton speichernbutton = new JButton();
  private JButton ausgabebutton = new JButton();
  private JTextArea ergebnis = new JTextArea("");
  private JLabel suchelabel = new JLabel();
  private JLabel ergebnislabel = new JLabel();
  private JScrollPane sbrText; // Scroll pane for text area
  // Ende Attribute
  
  CSVReader reader = new CSVReader();

  public guitele(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 700;
    int frameHeight = 385;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Container cp = getContentPane();

    eingabe.setBounds(16, 32, 121, 24);
    eingabe.setText("Ihre Eingabe");
    cp.add(eingabe);
    einlesen.setBounds(480, 80, 121, 49);
    einlesen.setText("Datei einlesen");
    einlesen.setMargin(new Insets(2, 2, 2, 2));
    einlesen.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        einlesen_ActionPerformed(evt);
      }
    });
    cp.add(einlesen);
    suchebutton.setBounds(40, 70, 55, 16);
    suchebutton.setText("Suchen");
    suchebutton.setMargin(new Insets(2, 2, 2, 2));
    suchebutton.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        suchebutton_ActionPerformed(evt);
      }
    });
    cp.add(suchebutton);
    speichernbutton.setBounds(480, 128, 123, 49);
    speichernbutton.setText("Als Datei speichern");
    speichernbutton.setMargin(new Insets(2, 2, 2, 2));
    speichernbutton.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        speichernbutton_ActionPerformed(evt);
      }
    });
    cp.add(speichernbutton);
    ausgabebutton.setBounds(480, 176, 123, 49);
    ausgabebutton.setText("Ausgabe Csv");
    ausgabebutton.setMargin(new Insets(2, 2, 2, 2));
    ausgabebutton.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        ausgabebutton_ActionPerformed(evt);
      }
    });
    cp.add(ausgabebutton);
    
    
    ergebnis.setBounds(8, 120, 400, 200);
    ergebnis.setLineWrap(true);
    ergebnis.setEditable(false);
    ergebnis.setVisible(true);
    sbrText = new JScrollPane(ergebnis);
    sbrText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    cp.add(sbrText);
    ergebnis.setAutoscrolls(isEnabled());
    cp.add(ergebnis);

    suchelabel.setBounds(40, 8, 48, 16);
    suchelabel.setText("Suche");
    suchelabel.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(suchelabel);
    ergebnislabel.setBounds(48, 104, 64, 16);
    ergebnislabel.setText("Ergebnis");
    ergebnislabel.setFont(new Font("MS Sans Serif", Font.PLAIN, 13));
    cp.add(ergebnislabel);
    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

Was habe ich falsch gemacht?

es erscheinen auch keine Fehler

danke

mfg
 
Moin,

ich habe den Code jetzt nicht im Detail nachvollzogen, aber ich denke, was Dir fehlt ist das "getViewPort", über das Du die scrollbare Componente hinzufügen musst - etwa so :
Java:
jScrollPane.getViewport().add( myTextArea, null );

Gruß
Klaus
 
Ich verstehe nicht ganz wieso du die TextArea sowohl der ScrollPane als auch deiner ContentPane hinzufügst. Ich kann mir aber vorstellen, dass es daran liegt, dass du der ScrollPane selbst nicht sagst, wie groß diese sein soll, du gibst nur der TextArea Werte mit und ich denke nicht, dass sich die ScrollPane an den Inhalt anpasst, sonst wär das Prinzip ja irgendwo nicht mehr gegeben oder ;).
 
Zurück