Avatar billede aslan Nybegynder
10. maj 2002 - 10:30 Der er 10 kommentarer og
2 løsninger

Sætte scrollbar på textarea?

Hvordan sætter jeg en scrollbar på min textarea?



import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
import java.text.*;

public class Liste extends JFrame implements ActionListener
{
      JTextArea felt;
      JButton værelser,gæster,reservationer,afslut;
      JScrollBar scroller;


      Reservation hentReservation = new Reservation();

      public Liste()throws IOException
      {

      Container contentPane = getContentPane();
      GridBagLayout gridbag = new GridBagLayout();
      GridBagConstraints c = new GridBagConstraints();
      contentPane.setLayout(gridbag);
      c.fill = GridBagConstraints.HORIZONTAL;


      felt = new JTextArea(10,20);
      c.weightx = 1.0;
      c.gridwidth = 2;
      c.insets = new Insets(0,20,0,150);
      c.gridx = 0;
      c.gridy = 4;
      gridbag.setConstraints(felt, c);
      contentPane.add(felt);
      felt.setEditable(false);

      værelser = new JButton("Værelser");
      c.insets = new Insets(0,490,0,20);
      c.gridx = 1;
      c.gridy = 0;
      gridbag.setConstraints(værelser, c);
      contentPane.add(værelser);
      værelser.addActionListener(this);

      gæster = new JButton("Gæster");
      c.insets = new Insets(10,490,0,20);
      c.gridx = 1;
      c.gridy = 1;
      gridbag.setConstraints(gæster, c);
      contentPane.add(gæster);
      gæster.addActionListener(this);

      reservationer = new JButton("Reservationer");
      c.insets = new Insets(10,490,0,20);
      c.gridx = 1;
      c.gridy = 2;
      gridbag.setConstraints(reservationer, c);
      contentPane.add(reservationer);
      reservationer.addActionListener(this);

      afslut = new JButton("Afslut");
      c.insets = new Insets(10,490,0,20);
      c.gridx = 1;
      c.gridy = 3;
      gridbag.setConstraints(afslut, c);
      contentPane.add(afslut);
      afslut.addActionListener(this);


      }
      public void seVærelser()

      {

        for(int i=0;i<50;i++)

        {

            felt.append("Nr "+hentReservation.værelser[i].nr+" Kapacitet "+hentReservation.værelser[i].størrelse+" Status "+hentReservation.værelser[i].status+"\n");

        }



      }

      public void actionPerformed( ActionEvent e )
      {
        if( e.getSource() == værelser );
        {

            seVærelser();

        }


      }



}
Avatar billede lyhr007 Nybegynder
10. maj 2002 - 10:39 #1
I følge JavaDoc

The java.awt.TextArea internally handles scrolling. JTextArea is different in that it doesn't manage scrolling, but implements the swing Scrollable interface. This allows it to be placed inside a JScrollPane if scrolling behavior is desired, and used directly if scrolling is not desired.

se: http://java.sun.com/j2se/1.4/docs/api/javax/swing/JTextArea.html
Avatar billede lyhr007 Nybegynder
10. maj 2002 - 10:42 #2
The Swing components do not typically have scroll bars. In order to automatically display scroll bars, you need to insert the component in a scroll pane.
    JTextArea textArea = new JTextArea(10, 10);
    JScrollPane scrollableTextArea = new JScrollPane(textArea);
Avatar billede tomniels Nybegynder
10. maj 2002 - 11:17 #3
På dansk!!!!!
Du skal lave et scrollPane som du så bagefter skal appende textAreaet på:

Altså:
        JScrollPane scrollableTextArea = new JScrollPane(felt);
        ContentPane.add(scrollableTextArea);
Skal modificeres lidt!!
Avatar billede lyhr007 Nybegynder
10. maj 2002 - 11:18 #4
Nej hvor er du er dytig tomniels....Sikke et svar...wow
Avatar billede tomniels Nybegynder
10. maj 2002 - 11:21 #5
Tak!!!!!
Avatar billede aslan Nybegynder
10. maj 2002 - 11:25 #6
Det i snakker om har jeg faktisk forsøgt mig med først og den giver stadig samme fejl:

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.util.*;
import java.text.*;

public class Liste extends JFrame implements ActionListener
{
      JTextArea area;
      JButton værelser,gæster,reservationer,afslut;
      JScrollPane felt;

      Reservation hentReservation = new Reservation();

      public Liste()throws IOException
      {

      Container contentPane = getContentPane();
      GridBagLayout gridbag = new GridBagLayout();
      GridBagConstraints c = new GridBagConstraints();
      contentPane.setLayout(gridbag);
      c.fill = GridBagConstraints.HORIZONTAL;


      area = new JTextArea(10,20);
      felt = new JScrollPane(area);
      c.weightx = 1.0;
      c.gridwidth = 2;
      c.insets = new Insets(0,20,0,150);
      c.gridx = 0;
      c.gridy = 4;
      gridbag.setConstraints(felt, c);
      contentPane.add(felt);
      felt.setEditable(false);

      værelser = new JButton("Værelser");
      c.insets = new Insets(0,490,0,20);
      c.gridx = 1;
      c.gridy = 0;
      gridbag.setConstraints(værelser, c);
      contentPane.add(værelser);
      værelser.addActionListener(this);

      gæster = new JButton("Gæster");
      c.insets = new Insets(10,490,0,20);
      c.gridx = 1;
      c.gridy = 1;
      gridbag.setConstraints(gæster, c);
      contentPane.add(gæster);
      gæster.addActionListener(this);

      reservationer = new JButton("Reservationer");
      c.insets = new Insets(10,490,0,20);
      c.gridx = 1;
      c.gridy = 2;
      gridbag.setConstraints(reservationer, c);
      contentPane.add(reservationer);
      reservationer.addActionListener(this);

      afslut = new JButton("Afslut");
      c.insets = new Insets(10,490,0,20);
      c.gridx = 1;
      c.gridy = 3;
      gridbag.setConstraints(afslut, c);
      contentPane.add(afslut);
      afslut.addActionListener(this);


      }
      public void seVærelser()

      {

        for(int i=0;i<50;i++)

        {

            felt.append("Nr "+hentReservation.værelser[i].nr+" Kapacitet "+hentReservation.værelser[i].størrelse+" Status "+hentReservation.værelser[i].status+"\n");

        }



      }

      public void actionPerformed( ActionEvent e )
      {
        if( e.getSource() == værelser );
        {

            seVærelser();

        }


      }



}


C:\Documents and Settings\aslan\Skrivebord\grænseflade2\Liste.java:35: cannot resolve symbol
symbol  : method setEditable  (boolean)
location: class javax.swing.JScrollPane
      felt.setEditable(false);
          ^
C:\Documents and Settings\aslan\Skrivebord\grænseflade2\Liste.java:79: cannot resolve symbol
symbol  : method append  (java.lang.String)
location: class javax.swing.JScrollPane
            felt.append("Nr "+hentReservation.værelser[i].nr+" Kapacitet "+hentReservation.værelser[i].størrelse+" Status "+hentReservation.værelser[i].status+"\n");
                ^
2 errors

Tool completed with exit code 1
Avatar billede lyhr007 Nybegynder
10. maj 2002 - 11:30 #7
Prøv at bytte om på de her 2 linjer:

contentPane.add(felt);
felt.setEditable(false);


->

felt.setEditable(false);
contentPane.add(felt);

Nu kommer tomniels sikkert og oversætter det til engelsk...
Avatar billede aslan Nybegynder
10. maj 2002 - 11:31 #8
hahaha
Avatar billede aslan Nybegynder
10. maj 2002 - 11:32 #9
Nej stadig samme fejl ?
Avatar billede tomniels Nybegynder
10. maj 2002 - 11:36 #10
Prøv:  area.setEditable(false);
      area..append("Nr "+hentReservation.værelser[i].nr+"        Kapacitet "+hentReservation.værelser[i].størrelse+" Status "+hentReservation.værelser[i].status+"\n");
Avatar billede lyhr007 Nybegynder
10. maj 2002 - 11:37 #11
Ahh du prøver at gøre din scroll pane felt.setEditable(false);

Det skal vel være area.setEditable(false);
Avatar billede aslan Nybegynder
10. maj 2002 - 11:43 #12
Jeg takker jer begge:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester