jScrollPane Problem

daZza

Mitglied
Hey,

Mein Problem ist, dass die TextArea nicht automatisch scrollt bzw keine Scrollbalken anzeigt. Fehlt noch ein zusätzlicher Befehl? In den diversen Wikis habe ich immer nur von dem einen gelesen...

Java:
          tfTest = new JTextArea();
          tfTest.setText ("");
          tfTest.setBounds (375, 120, 200, 200);
          tfTest.setBackground(Color.white);
          tfTest.setWrapStyleWord(true);
          tfTest.setLineWrap(true);
          JScrollPane scrollPane = new JScrollPane(tfTest);
 
B

bygones

Gast
setBounds klingt nach dem Null Layout und mit dem bekommt man v.a. bei Scrollpanes immer probleme

somit setBounds nicht nur ueberfluessig sondern meist die ursache des problems. Einen richtigen LayoutManager nehmen (stattdessen)
 

daZza

Mitglied
Was genau ist ein Layout Manager? Sorry bin wirklich noch Anfänger und muss das jetzt halt alt Übung für die Uni machen. Ich habe mal nen Screenshot gemacht, damit das vielleicht etwas deutlicher wird.

 

daZza

Mitglied
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*; 
import javax.swing.JFormattedTextField;
import javax.swing.text.MaskFormatter;

public class EinAus extends JFrame implements ActionListener 
{  
     
     private JTextField tfBetrag, tfPIN, tfSystem, tfKontostand;
     private int Einzahlung, Auszahlung, Kontostand = 0, Limit = 3000, Geheimzahl = 1234, Dispo = -5000, Auszahlungen = 0;
     private JTextArea tfTest;
     private JButton btAbheben = new JButton();
     private JButton btBestätigen = new JButton();
     private JButton btEinzahlen = new JButton();
               
     public EinAus()   
     {    
          super("Bank Account");
          this.getContentPane().setBackground(Color.lightGray);
          this.getContentPane().setLayout( new GridLayout(/*3*/ 0, 2, 6, 3) );
          //Einzahlen-Button
          JButton btEinzahlen = new JButton("Einzahlen");
          btEinzahlen.setBounds (20, 120, 120, 30);
          btEinzahlen.setBackground(Color.green);
          btEinzahlen.addActionListener(this);
          this.getContentPane().add(btEinzahlen);
          //Auszahlen-Button
          JButton btAbheben = new JButton("Abheben");
          btAbheben.setBounds (20, 160, 120, 30);
          btAbheben.setBackground(Color.green);
          btAbheben.addActionListener(this);
          this.getContentPane().add(btAbheben);
          //Bestätigen-Button
          JButton btBestätigen = new JButton("Bestätigen");
          btBestätigen.setBounds (20, 200, 120, 30);
          btBestätigen.setBackground(Color.green);
          btBestätigen.addActionListener(this);
          this.getContentPane().add(btBestätigen);
          //Eingabe-Label
          JLabel lbBetrag = new JLabel ("Betrag:");
          lbBetrag.setBounds (110, 40, 90, 30);
          this.getContentPane().add (lbBetrag);
          //Kontostand-Label
          JLabel lbKontostand = new JLabel ("Kontostand");
          lbKontostand.setBounds (440, 35, 90, 30);
          this.getContentPane().add (lbKontostand);
          //Eingabe-Textfeld
          tfBetrag = new JTextField (40);
          tfBetrag.setText ("");
          tfBetrag.setBounds (160, 40, 200, 30);
          tfBetrag.setBackground(Color.white);
          this.getContentPane().add (tfBetrag);
          //Kontostand-Textfeld
          tfKontostand = new JTextField (40);
          tfKontostand.setText ("");
          tfKontostand.setBounds (390, 60, 160, 30);
          tfKontostand.setBackground(Color.white);
          this.getContentPane().add (tfKontostand);
          //Ausgabe-Label
          JLabel lbPIN = new JLabel ("PIN:");
          lbPIN.setBounds (130, 80, 90, 30);
          this.getContentPane().add (lbPIN);
          //Ausgabe-Textfeld
          tfPIN = new JTextField (40);
          tfPIN.setText ("");
          tfPIN.setBounds (160, 80, 200, 30);
          tfPIN.setBackground(Color.white);
          this.getContentPane().add (tfPIN);
          //System-Textfeld
          //tfSystem = new JTextField (40);
          //tfSystem.setText ("");
          //tfSystem.setBounds (375, 120, 200, 200);
          //tfSystem.setBackground(Color.white);
          //this.getContentPane().add (tfSystem);
          //Test-Textarea
          tfTest = new JTextArea();
          tfTest.setText ("");
          tfTest.setBounds (375, 120, 200, 200);
          tfTest.setBackground(Color.white);
          tfTest.setWrapStyleWord(true);
          tfTest.setLineWrap(true);
          //JScrollPane scrollPane = new JScrollPane(tfTest);
          //tfTest.setCaretPosition(tfTest.getText().length());
          this.getContentPane().add (tfTest);
          this.setVisible(true);
          
          //JFormattedTextField dateField = new JFormattedTextField (new MaskFormatter("####"));
     }


     public void actionPerformed(ActionEvent event)   
     {    
          String cmd = event.getActionCommand();
          if (cmd.equals("Einzahlen"))
          {
               int hilfe = Integer.parseInt(tfPIN.getText());
               String hilfe1 = tfBetrag.getText();
               int hilfe3 = Integer.parseInt(tfBetrag.getText());

               if (!hilfe1.isEmpty() &&  hilfe == Geheimzahl && hilfe3 != 0)
               {
                Einzahlung = Integer.parseInt(tfBetrag.getText());
                tfBetrag.setText("");
                Kontostand = Kontostand + Einzahlung;
                tfTest.setText(tfTest.getText() + "\n" +  "Einzahlung erfolgreich. Kontostand aktualisiert.");
                String hilfe2 = String.valueOf(Kontostand);
                tfKontostand.setText(hilfe2);
               }

               else
               {
                tfTest.setText(tfTest.getText() + "\n" +  "Bitte überprüfen sie ihre Eingaben");
               }

          }
          else if (cmd.equals("Abheben"))
          {

               int hilfe = Integer.parseInt(tfPIN.getText());
               String hilfe1 = tfBetrag.getText();
               int hilfe3 = Integer.parseInt(tfBetrag.getText());
               
               
               if (!hilfe1.isEmpty() &&  hilfe == Geheimzahl)
               {
                
              if (hilfe3 > Limit)
              {
               tfTest.setText(tfTest.getText() + "\n" +  "Betrag überschreitet Limit. Bitte kleineren Betrag wählen");
              }
              else if (hilfe3 <= Limit && Auszahlungen < 10000 && Kontostand > -5000 && hilfe3 != 0)
              {
              Auszahlung = Integer.parseInt(tfBetrag.getText());
                tfBetrag.setText("");
                int hilfe4 = Kontostand - Auszahlung;
                if (hilfe4 < -5000)
                {
                  tfTest.setText(tfTest.getText() + "\n" +  "Dispo wird mit dieser Auszahlung überzogen. Bitte kleineren Betrag wählen.");
                }
                else
                {
                Kontostand = Kontostand - Auszahlung;
                tfTest.setText(tfTest.getText() + "\n" +  "Auszahlung erfolgreich. Kontostand aktualisiert.");
                String hilfe2 = String.valueOf(Kontostand);
                tfKontostand.setText(hilfe2);
                Auszahlungen = Auszahlungen + Auszahlung;
                }
               
              }
              
              else if (hilfe3 == 0)
              {
              tfTest.setText(tfTest.getText() + "\n" +  "Bitte überprüfen sie ihre Eingaben");
              }
              
              else if (Kontostand < -5000)
              {
                 tfTest.setText(tfTest.getText() + "\n" +  "Dispo überzogen. Bitte Konto ausgleichen.");  
              }
              
              else if (Auszahlungen >= 10000)
              {
                tfTest.setText(tfTest.getText() + "\n" +  "Globales Limit für den heutigen Tag erreicht. Bitte kommen sie morgen wieder."); 
              }
              
               }
               
               else
               {
                tfTest.setText(tfTest.getText() + "\n" +  "Bitte überprüfen sie ihre Eingaben");
               }

          }
          else if (cmd.equals("Bestätigen"))
          {
              if (tfPIN.getText().isEmpty())
              {
                tfTest.setText(tfTest.getText() + "\n" + "PIN falsch. Bitte korrigieren.");  
              }
              else
              {
               try{
                  int hilfe = Integer.parseInt(tfPIN.getText());
               String hilfe2 = String.valueOf(Kontostand);
               String hilfe3 = tfPIN.getText();

               if (hilfe != Geheimzahl)
               {
                 tfTest.setText(tfTest.getText() + "\n" + "PIN falsch. Bitte korrigieren.");
               }
               else
               {
                tfTest.setText(tfTest.getText() + "\n" + "PIN Authentifizierung erfolgreich");
                tfKontostand.setText(hilfe2);
               }
               }
               
               catch (java.lang.NumberFormatException e)
               {
                   tfTest.setText(tfTest.getText() + "\n" + "PIN Code muss aus Zahlen bestehen. Versuchen sie es bitte erneut.");
               }

              }
           
          }
     }
     
      public static void main(String[] args)
     {
          EinAus wnd = new EinAus();
          wnd.setSize(600,400);
          wnd.setVisible(true);
     }
}
 
B

bygones

Gast
Testweise mit einem GridLayout probiert, auch dort lässt sich das Feld nicht scrollen.

Java:
public class TestFrame extends JFrame {
    public static void main(String[] args) throws Exception {
        new TestFrame().setVisible(true);
    }

    public TestFrame() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        
        JPanel panel = new JPanel(new GridLayout(1, 1));
        JTextArea area = new JTextArea(5, 10);
        panel.add(new JScrollPane(area));
        
        setContentPane(panel);
        pack();
    }
}
ist scrollbar

les dir in ruhe den link von oben durch... du benutzt nur zum Teil einen LayoutManager, da du noch zu viele setBounds da im Spiel hast. Ausserdem ein GridLayout mit 0 rows ist nicht sehr sinnvoll
 

daZza

Mitglied
Dann läuft irgendwas anderes falsch bei mir :D Sorry in der Version die ich gepostet habe ist die Scrollbar auch auskommentiert, hatte zwischenzeitlich was anderes versucht.
 

Michael...

Top Contributor
Weiss jetzt nicht was an dem oberen Code kurz ist, aber in dem auskommentierten Code wurde die JScrollPane niemals dem Container hinzugefügt. Vielleicht hat man sie nicht nie auf der GUI gesehen, weil sie nie drauf war...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J JScrollPane, Regler-Problem Java Basics - Anfänger-Themen 3
H JScrollPane -> Problem bei ScrollBar Java Basics - Anfänger-Themen 3
R JScrollpane problem Java Basics - Anfänger-Themen 21
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
L JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 10
G Frage zu JScrollPane Java Basics - Anfänger-Themen 12
M JScrollPane scrollt nicht Java Basics - Anfänger-Themen 2
D JScrollPane mit TextArea Java Basics - Anfänger-Themen 5
N JList + DefaultListModel + JScrollPane --> ensureIndexIsVisible funktioniert nicht immer Java Basics - Anfänger-Themen 1
T JScrollPane in den Code einbauen Java Basics - Anfänger-Themen 5
O JScrollPane zu gross für JTable Java Basics - Anfänger-Themen 2
A JScrollPane nicht sichtbar Java Basics - Anfänger-Themen 5
S JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 6
N jScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 13
L Jscrollpane nach zoomen anpassen Java Basics - Anfänger-Themen 20
C JScrollPane + JTextArea scrollt nicht Java Basics - Anfänger-Themen 2
T JScrollPane nicht scrollbar (mit KSKB!) Java Basics - Anfänger-Themen 4
T JScrollPane: Slider programmgesteuert verschieben? Java Basics - Anfänger-Themen 4
Kenan89 JScrollPane, aber kein Scrollbalken Java Basics - Anfänger-Themen 4
T JScrollPane funktioniert nicht Java Basics - Anfänger-Themen 7
JStickman JTree, JScrollPane, Liste mit graphischer Suchleiste - Dateimanager Java Basics - Anfänger-Themen 10
A Button das JScrollPane aktualisiert Java Basics - Anfänger-Themen 11
S JScrollPane verhält sich nicht so wie gedacht Java Basics - Anfänger-Themen 2
T JScrollPane ganz runter Scrollen Java Basics - Anfänger-Themen 4
T JScrollPane resized nicht richtig... Java Basics - Anfänger-Themen 4
Z Label verschwindet in JScrollPane Java Basics - Anfänger-Themen 7
N JScrollPane repaint(); geht nicht Java Basics - Anfänger-Themen 4
R JScrollPane in JTextArea benutzen Java Basics - Anfänger-Themen 10
L JPanel vergrößern bis JScrollPane nicht mehr zu sehen Java Basics - Anfänger-Themen 7
O JScrollPane , JScrollBar Java Basics - Anfänger-Themen 3
Z JScrollPane zeigt Zeit als Datum Java Basics - Anfänger-Themen 5
E Breite des Schiebers in JscrollPane verändern Java Basics - Anfänger-Themen 2
T JScrollPane soll rechts gescrollt gezeichnet werden Java Basics - Anfänger-Themen 5
P JScrollPane Java Basics - Anfänger-Themen 18
J JScrollPane swing Java Basics - Anfänger-Themen 8
H JTable in JScrollPane: Scrollbar wird nicht angezeigt. Java Basics - Anfänger-Themen 2
H2SO3- JScrollPane will nicht scrollen Java Basics - Anfänger-Themen 3
_deleted Mehrere Panels untereinander im JScrollPane Java Basics - Anfänger-Themen 4
J JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 4
A JScrollPane aktualisiert nicht Java Basics - Anfänger-Themen 2
7 Java Swing: Wie JScrollPane zur JList hinzufügen? Java Basics - Anfänger-Themen 12
C jTabbedPane JScrollPane und jPanel Java Basics - Anfänger-Themen 3
S JScrollPane und JPanel Java Basics - Anfänger-Themen 2
J JScrollBar JScrollPane Java Basics - Anfänger-Themen 9
Q Anwendung eines JScrollPane Java Basics - Anfänger-Themen 2
M JScrollPane Java Basics - Anfänger-Themen 7
M Probleme mit JScrollPane Java Basics - Anfänger-Themen 5
G JScrollPane Java Basics - Anfänger-Themen 5
S JScrollPane: Scrollbalken werden nicht angezeigt Java Basics - Anfänger-Themen 4
P Brauche Hilfe für JPanel im JScrollPane und Abstände Java Basics - Anfänger-Themen 2
M VisualEditor, Jlist und JScrollPane Java Basics - Anfänger-Themen 9
M JScrollPane soll inhalt zentrieren Java Basics - Anfänger-Themen 3
C Automatischer Umbruch bei JScrollPane? Java Basics - Anfänger-Themen 5
G JScrollPane + JTable + Autoscroll uvm. Java Basics - Anfänger-Themen 5
N JScrollPane mit JTextArea Java Basics - Anfänger-Themen 4
I Autoscrolling im JScrollPane Java Basics - Anfänger-Themen 3
lin JScrollPane & OutOfMemoryError Java Basics - Anfänger-Themen 6
G JScrollPane in der Größe bestimmen Java Basics - Anfänger-Themen 11
P JScrollPane an JTextArea anhängen Java Basics - Anfänger-Themen 3
C JScrollPane ohne Rahmen? Java Basics - Anfänger-Themen 2
M JScrollPane Java Basics - Anfänger-Themen 4
G Probleme mit JScrollPane Java Basics - Anfänger-Themen 3
M JScrollPane: Autoscroll Java Basics - Anfänger-Themen 14
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8
sserio Schwimmen als Spiel. Problem mit to String/ generate a card Java Basics - Anfänger-Themen 4
J Schleife Problem Java Basics - Anfänger-Themen 2
D Problem mit der Erkennung von \n Java Basics - Anfänger-Themen 2
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
M Verständins Problem bei Aufgabe Java Basics - Anfänger-Themen 4
HeiTim Problem mit der Kommasetzung an der richtigen stelle Java Basics - Anfänger-Themen 59
Temsky34 Problem mit dem Code Java Basics - Anfänger-Themen 17
P Problem mit Calendar.getDisplayName() Java Basics - Anfänger-Themen 8
C Problem mit mehreren Methoden + Scanner Java Basics - Anfänger-Themen 5
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
M Problem mit Klassenverständnis und Button Java Basics - Anfänger-Themen 8
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben