Avatar billede riversen Nybegynder
11. maj 2001 - 17:32 Der er 8 kommentarer og
1 løsning

Layout managers

Jeg har sidden og rodet lidt med layout managers, og har nu følgende kode:

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

class Frame extends JFrame {
   
    public Frame( String titel ) {
        super( titel );
       
        getContentPane().setLayout( new BorderLayout() );

        JButton northButton  = new JButton( \"NORTH\" );
        JButton eastButton  = new JButton( \"EAST\" );
        TextArea southTextArea = new TextArea( \"SOUTH\", 10, 10, 2 );
        JButton westButton  = new JButton( \"WEST\" );
        JButton centerButton = new JButton( \"CENTER\" );

        getContentPane().add( northButton,  BorderLayout.NORTH );
        getContentPane().add( eastButton,  BorderLayout.EAST );
        getContentPane().add( southTextArea,  BorderLayout.SOUTH );
        getContentPane().add( westButton,  BorderLayout.WEST );
        getContentPane().add( centerButton, BorderLayout.CENTER );

        setSize( 400, 300 );
        setVisible ( true );
    }
}

mit spørgsmål er, hvordan jeg fx får gridlayout på 3 x 3 i SOUTH???


desuden vil jeg gerne vide hvilke værdier der kan bruges i følgende linie i stedet for 2 og hvilken betydning det har:

TextArea southTextArea = new TextArea( \"SOUTH\", 10, 10, 2 );
Avatar billede riversen Nybegynder
11. maj 2001 - 18:48 #1
skal nok afsætte flere point, hvis det er for lidt ;-)
Avatar billede erikjacobsen Ekspert
11. maj 2001 - 19:07 #2
...jeg har ikke lige min gode bog ved hånden... - beklager, riversen
(Jeg kunne selvfølgelig lige traske lidt online dokumentation igennem, men
det bliver ikke lige nu)
Avatar billede riversen Nybegynder
11. maj 2001 - 19:09 #3
ok
Avatar billede logical Nybegynder
11. maj 2001 - 19:16 #4
Hvis du skal have et gridlayout i SOUTH, opretter du bare et panel med gridlayout, og lægger det ind i SOUTH, f.eks.

Panel p = new Panel();
p.setLayout(new GridLayout(3,3));
p.add(new Button(\"1\");
// etc
getContentPane().add(p, BorderLayout.SOUTH);

Dit textarea tager fire parametre i konstruktøren: teksten, antallet af rækker, antallet af kolonner, og placering af scrollbar.

Til scrollbar kan du bruge konstanterne:
TextArea.SCROLLBAR_HORIZONTAL_ONLY
TextArea.SCROLLBAR_VERTICAL_ONLY
TextArea.SCROLLBAR_BOTH
TextArea.SCROLLBAR_NONE

Jeg kan ikke huske hvad for en af dem, der er to men..

Var det svar nok :-)
Avatar billede riversen Nybegynder
11. maj 2001 - 19:36 #5
ok, ser nu sådan her ud...

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

class Frame extends JFrame {
   
    public Frame( String titel ) {
        super( titel );
       
        getContentPane().setLayout( new BorderLayout() );

        JButton northButton  = new JButton( \"NORTH\" );
        JButton eastButton  = new JButton( \"EAST\" );
        JButton westButton  = new JButton( \"WEST\" );
        JButton centerButton = new JButton( \"CENTER\" );
       
        Panel p = new Panel();
        p.setLayout(new GridLayout(0,2));
        p.add( new JTextArea( \"SOUTH\", 10, 10));
        p.add( new JButton(\"2\"));
       
        getContentPane().add( northButton,  BorderLayout.NORTH );
        getContentPane().add( eastButton,  BorderLayout.EAST );
        getContentPane().add( p,  BorderLayout.SOUTH );
        getContentPane().add( westButton,  BorderLayout.WEST );
        getContentPane().add( centerButton, BorderLayout.CENTER );

        setSize( 400, 300 );
        setVisible ( true );
    }
}

hvad er det så lige du siger jeg skal gøre med JTextArea for at få scroll bars, hvis jeg íkke derfinerer det med tal men det du skriver
JTextArea.SCROLLBAR_BOTH
Avatar billede riversen Nybegynder
11. maj 2001 - 19:42 #6
logical: har du icq?
Avatar billede logical Nybegynder
11. maj 2001 - 19:50 #7
Ingen ICQ, for så kan jeg slappe af, når jeg vil :-)


Du har lige forvirret med hensyn til TextArea, oprindelig brugte du java.awt.TextArea, anden gang javax.swing.JTextArea.

Hvis du bruger et JTextArea, kan du ikke lige få Scrollbars sådan uden videre.

Brug i stedet følgende:
JTextArea ta = new JTextArea(\"SOUTH\", 10, 10);
getContentPane().add(new JScrollPane(ta));

JScrollPane er et scrollbar object, man kan lave en del med, men default er \"vis, når det er nødvendigt\"

Avatar billede riversen Nybegynder
11. maj 2001 - 19:52 #8
og hvis jeg bruger java.awt.TextArea ?
Avatar billede el_gnu Nybegynder
11. maj 2001 - 19:52 #9
p.add( new JTextArea( \"SOUTH\", 10, 10, JTextArea.SCROLLBAR_BOTH));
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