Avatar billede saje Nybegynder
06. december 2003 - 16:14 Der er 8 kommentarer og
1 løsning

Hvilken LayoutManager skal jeg anvende?

Jeg er ved at lave en GUI til mit bogsalg. Jeg vil gerne have min tekst ordnet, således at de enkelte tekststrenge står under hinanden. Jeg har inddelt feltet i BorderLayout, og mine tekststrenge skal stå i North. Jeg har fire strenge ialt. Er der en smart måde at gøre det på? Hvis jeg gerne vil undgå GridLayout?? Jeg har prøvet at inddele North i FlowLayout, men det virkede ikke. se nedenstående:

tekstFelt= new JPanel();
    tekstFelt.setLayout(new FlowLayout());

            tekstFelt.add(tekstFelt1, FlowLayout.CENTER);
            tekstFelt.add(tekstFelt2, FlowLayout.CENTER);
            tekstFelt.add(tekstFelt3, FlowLayout.CENTER);
            tekstFelt.add(tekstFelt4, FlowLayout.CENTER);
Avatar billede soreno Praktikant
06. december 2003 - 16:16 #1
Avatar billede saje Nybegynder
06. december 2003 - 16:16 #2
Ps. tekstfelterne (1,2,3,4) er JLabels. Hvis det gør en forskel?
Avatar billede arne_v Ekspert
06. december 2003 - 16:21 #3
Hvad er der galt med GridLayout ?

Det er da et af de layout hvor man har lidt styr på tingene.
Avatar billede saje Nybegynder
06. december 2003 - 16:24 #4
er det ikke et KÆMPE arbejde, man skal jo holde styr på MAAAAAAAAAANGE koordinater...ikke?
Avatar billede soreno Praktikant
06. december 2003 - 16:26 #5
Hvis det er 4 labels der skal stå under hinanden er det da smart at bruge GridLayout med 4 rækker og en kolonne.
Avatar billede saje Nybegynder
06. december 2003 - 16:31 #6
Hvis I siger det, så ok! Synes bare det ser meget forvirrende ud:( Har aldrig brugt det...
Avatar billede soreno Praktikant
06. december 2003 - 16:36 #7
Det er ret simplet at bruge GridLayout:

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

public class SwingTest extends JFrame
{
    private int frameWidth = 100;
    private int frameHeight = 120;
    private JPanel panel;
    private JButton button;
   
    public SwingTest()
    {
        createFrame();
    }

    private void createFrame()
    {
        setTitle("TestKlasseSwing");
        JFrame.setDefaultLookAndFeelDecorated(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //components
        getContentPane().setLayout(new GridLayout(4,1));
        getContentPane().add(new JLabel("Label1"));
        getContentPane().add(new JLabel("Label2"));
        getContentPane().add(new JLabel("Label3"));
        getContentPane().add(new JLabel("Label4"));
       
        //Center Frame
        setSize(frameWidth, frameHeight);
        setLocationRelativeTo(this);       
    }

    public static void main(String args[])
    {
        new SwingTest().show();
    }
}

Men den ser ikke pæn ud hvis man skalerer størrelsen på framen, f.eks. ved at maksimere vinduet.
Avatar billede saje Nybegynder
06. december 2003 - 16:41 #8
ups:) har luret tricket, slet ikke så svært, tusind tak!!!
Avatar billede soreno Praktikant
06. december 2003 - 16:42 #9
Så vil jeg lægge et svar.
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