Avatar billede kridley Nybegynder
06. december 2004 - 12:11 Der er 8 kommentarer og
1 løsning

GridBagLayout - Kan ikke få det vist

Jeg har problemer med at få tilføjet et GridBagLayout til et JPanel og vist det på skærmen, min klasse nedarver fra JPanel.

Min kode ser sådan ud:

    JPanel left, right, leftUp, leftDown;
    GridBagLayout leftUpLayout;
    GridBagConstraints leftUpLayoutContraints;
   
    public Constructor(){
   
        this.setLayout(new GridLayout(1,2));
       
        left = new JPanel(new GridLayout(2,1));
       
        leftDown = new JPanel();
        leftUp = new JPanel(leftUpLayout);

        left.add(leftUp);
        left.add(leftDown);
       
        leftUpLayout = new GridBagLayout();
        leftUpLayoutContraints = new GridBagConstraints();
        // Add Terminal TextField
        leftUpLayoutContraints.gridx = 0;
        leftUpLayoutContraints.gridy = 0;
        leftUpLayoutContraints.gridwidth = 3;
        leftUpLayoutContraints.gridheight = 1;
        leftUpLayoutContraints.fill = GridBagConstraints.HORIZONTAL;
        JTextField terminals = new JTextField("Terminals Found");
        leftUpLayout.setConstraints(terminals, leftUpLayoutContraints);
        leftUp.add(terminals);     
       
        right = new JPanel();
     
        this.add(left);
        this.add(right);
       
    }
Avatar billede morteeart Nybegynder
06. december 2004 - 12:14 #1
får du nogle fejl ?
Avatar billede mhj28 Nybegynder
06. december 2004 - 12:16 #2
prøv med denne linie:
leftUpLayout.setLayout(new GridBagLayout());

istædet for:  leftUpLayout = new GridBagLayout();
Avatar billede mikkelbm Nybegynder
06. december 2004 - 12:50 #3
>> mhj28

Hvorfor vil du ha', at han skal tilføje et Layout til et andet Layout?
Avatar billede mikkelbm Nybegynder
06. december 2004 - 12:52 #4
Prøv at bytte om på følgende:

leftUp = new JPanel(leftUpLayout);

left.add(leftUp);
left.add(leftDown);
       
leftUpLayout = new GridBagLayout();


Så det bliver til:

leftUpLayout = new GridBagLayout();
leftUp = new JPanel(leftUpLayout);

left.add(leftUp);
left.add(leftDown);

I det første er lefUpLayout jo null.
Avatar billede mhj28 Nybegynder
06. december 2004 - 13:03 #5
ups ja jeg har vist sovet lidt da jeg skrev det... jeg trode at det var et JPanel sorry!
Avatar billede kridley Nybegynder
06. december 2004 - 13:11 #6
Super, det var vist det! Det er første gang jeg bruger GridBagLayout. Nu har jeg bare det problem at mit tekstfelt varierer i størrelse efter hvor meget tekst der er i det. Er der nogen måde at ordne dette på? Jeg giver naturligvis point til mikkelbm hvis du smider et svar....
Avatar billede mikkelbm Nybegynder
06. december 2004 - 13:15 #7
Hvad hvis du sætter en bestemt størrelse på det:

tekstfelt.setPreferredSize (new Dimension(150, 150));

og måske også:

tekstfelt.setMaximumSize (new Dimension(150, 150));
Avatar billede mikkelbm Nybegynder
06. december 2004 - 13:16 #8
Eller måske bedre:

Smide det ind i en scrollpane:

JScrollPane pane = new JScrollPane (terminal);
pane.setPreferredSize (new Dimension(150, 150));

Og så ikke:
leftUpLayout.setConstraints(terminals, leftUpLayoutContraints);

Men:
leftUpLayout.setConstraints(pane, leftUpLayoutContraints);


Håber det hjalp!?
Avatar billede mikkelbm Nybegynder
06. december 2004 - 13:17 #9
Og selvfølgelig også:

leftUp.add(terminals);     

til

leftUp.add(pane);
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