Avatar billede evilfish Nybegynder
21. maj 2006 - 12:18 Der er 3 kommentarer og
1 løsning

GUI der ikke tegnes

Hej eksperter.

Jeg forsøger at gøre mig lidt bedre til at lave bruger grænse flader, og er begynder/letøvet til java. Men jeg ved ikke hvad jeg gør galt, for det jeg har lavet indtil videre vil ikke tegnes. Her er mine kode:

    public GUI()
    {
        frame = new JFrame();
        frame.setSize(800,600);
        frame.setTitle("MySheeps v0.1 - ALPHA");
        makeMenubar();
       
       
        sheepcntT = new JLabel("Sheeps in herd: ");
        malesT = new JLabel("Males: ");
        femalesT = new JLabel("Femals: ");
        sheepcnt = new JLabel("" + 5);
        males = new JLabel("" + 1);
        females = new JLabel("" + 4);
        GridLayout labelsection = new GridLayout(1,6);
        JPanel northpane = new JPanel(labelsection);
        abelsection.addLayoutComponent("", sheepcntT);
        labelsection.addLayoutComponent("", sheepcnt);
        labelsection.addLayoutComponent("", femalesT);
        labelsection.addLayoutComponent("", females);
        labelsection.addLayoutComponent("", malesT);
        labelsection.addLayoutComponent("", males);
        frame.getContentPane().add(northpane, BorderLayout.CENTER);
        northpane.setVisible(true);
        frame.setVisible(true);
        frame.repaint();
    }

Det jeg forsøger på lige nu er at få skrevet nogle JLabels i toppen af mit border layout. Jeg kan godt skrive en enkelt ud, men når jeg laver et Panel med et gridlayout og indsætter det, vil det ikke tegnes. Hvad gør jeg galt?
Avatar billede _carsten Nybegynder
21. maj 2006 - 13:32 #1
"Normalt" ville man adde komponenter til panelet og ikke til layoutet, noget a la nedenstående

        sheepcntT = new JLabel("Sheeps in herd: ");
        malesT = new JLabel("Males: ");
        femalesT = new JLabel("Femals: ");
        sheepcnt = new JLabel("" + 5);
        males = new JLabel("" + 1);
        females = new JLabel("" + 4);
        GridLayout labelsection = new GridLayout(1,6);
        JPanel northpane = new JPanel(labelsection);
        northpane.add(sheepcntT);
        northpane.add(sheepcnt);
        northpane.add(femalesT);
        northpane.add(females);
        northpane.add(malesT);
        northpane.add(males);
        frame.getContentPane().add(northpane, BorderLayout.CENTER);
        // northpane.setVisible(true);    Er unødvendig
        pack();  // For at resize alle komponenter til deres preferredsize (Layout afhængig)
        frame.setVisible(true);
        // frame.repaint();    Er unødvendig
Avatar billede _carsten Nybegynder
21. maj 2006 - 13:34 #2
Og så lige den her:  northpane, BorderLayout.CENTER);

ville man jo nok adde NORTH, eller kalde panelet "centerpane" :)
Avatar billede evilfish Nybegynder
21. maj 2006 - 14:07 #3
Tak for dine rettelser og kommentarer - Det lærte jeg noget af og det virkede. Smid et svar tak :)
Avatar billede _carsten Nybegynder
21. maj 2006 - 14:09 #4
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