Avatar billede themepark Nybegynder
21. december 2005 - 21:05 Der er 9 kommentarer og
1 løsning

Vinduet får ikke den rigtige størrelse ved load

Jeg har 2 klasser, en der er et JPanel og en der er en JFrame, som jeg adder min JPanel til, og så bruger pack. På min JFrame tegner jeg en cirkel. Og så bruger jeg pack. Men vinduet bliver ikke den rigtige størrelse, det viser ikke hele cirklen.

Jeg kan ikke lige gennemskue hvad jeg mangler :S

import javax.swing.*;

public class Class1 extends JFrame {
    public Class1() {
        Class2 a = new Class2();
        this.add(a);
        this.pack();
        this.setVisible(true);
    }
}

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

public class Class2 extends JPanel {
    public void paint(Graphics g) {
        g.drawOval(0, 0, 99, 99);
    }
}
Avatar billede mikkelbm Nybegynder
21. december 2005 - 21:18 #1
Du skal give dit panel en størrelse. Pack tjekker ikke for hvor du har tegnet, men kun på komponenternes størrelse. (mig bekendt)
Avatar billede themepark Nybegynder
21. december 2005 - 21:29 #2
Hvordan kan jeg så gøre det sådan at den får en automatisk størrelse?
Avatar billede mikkelbm Nybegynder
21. december 2005 - 21:39 #3
Automatisk i forhold til hvad?

Hvis det er i forhold til din cirkel, bliver du nødt til at kende størrelsen på cirklen og så sætte størrelsen på panelet efter det.

f.eks.:

import javax.swing.*;

public class Class1 extends JFrame
{
    public Class1()
    {
        Class2 a = new Class2(99);
        this.add(a);
        this.pack();
        this.setVisible(true);
    }
}




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

public class Class2 extends JPanel
{
    private int size;

    public Class2 (int size)
    {
        this.size = size;
        this.setPreferredSize (new Dimension (size, size));
        this.setMinimumSize (new Dimension (size, size));
    }

    public void paint(Graphics g)
    {
        g.drawOval(0, 0, size, size);
    }
}
Avatar billede themepark Nybegynder
21. december 2005 - 23:11 #4
Jeg mener automatisk ligesom f.eks. pack automatisk beregner vinduets størrelse :)
Avatar billede themepark Nybegynder
21. december 2005 - 23:11 #5
Uden at jeg skal angive en bestemt værdi :)
Avatar billede mikkelbm Nybegynder
21. december 2005 - 23:19 #6
Det kan du som sagt ikke. Da Panelet ikke ved hvor du har tegnet henne.
Avatar billede mikkelbm Nybegynder
20. januar 2006 - 23:11 #7
Lukketid?
Avatar billede mikkelbm Nybegynder
18. februar 2006 - 13:23 #8
?
Avatar billede themepark Nybegynder
19. februar 2006 - 14:00 #9
Argh! Jeg har for vane med at glemme at tjekke mine gamle spørgsmål, fordi jeg hele tiden starter på nye projekter :( Men ja, smid et svar. Jeg har bare angivet en bestemt størrelse på min JFrame.
Avatar billede mikkelbm Nybegynder
19. februar 2006 - 15:08 #10
Kommer her :)
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