NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

Diskuze – Lekce 6 - Layouty v Javě (podruhé)

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Milan Gallas
Tvůrce
Avatar
Milan Gallas:24.7.2013 19:58

jo a obrázky pochází ze stránky: http://docs.oracle.com/…/visual.html

 
Odpovědět
24.7.2013 19:58
Avatar
BLADE
Člen
Avatar
BLADE:22.8.2013 18:47

Ten GridBagLayout je super, no nedá sa tam nejako nadstaviť aby sa mi to vždy nedávalo do stredu okna ?

 
Odpovědět
22.8.2013 18:47
Avatar
Milan Gallas
Tvůrce
Avatar
Odpovídá na BLADE
Milan Gallas:22.8.2013 21:00

stačí když použiješ příkazy:
g.weightx = 0.5;
g.weighty = 0.5;
a popřípadě pokud budeš chtít tak si přepiš
tohle

g.fill = GridBagConstraints.HORIZONTAL;

na tohle

g.fill = GridBagConstraints.BOTH;

efekt uvidíš sám.

Editováno 22.8.2013 21:01
 
Odpovědět
22.8.2013 21:00
Avatar
BLADE
Člen
Avatar
Odpovídá na Milan Gallas
BLADE:23.8.2013 17:43

No tak som to skúsil s tým wightx a y + som tam pridal anchor na NORTHWEST. A išlo mi to pekne doľava a hore no potom som chcel dať pod to 2 tlačítka a to už je problém pretože mi ich dá zas do stredu a ešte kvôli tomu weight dosť ďaleko od seba :(

z = new JLabel("Vyberte si 1. jazyk: ");
        gbc.anchor = GridBagConstraints.NORTHWEST;

        gbc.weightx = 0.5;
        gbc.weighty = 0.5;
        gbc.gridx = 0;
        gbc.gridy = 0;
        hlava.add(z, gbc);

        EN = new JButton("EN");
        gbc.gridx = 0;
        gbc.gridy = 1;
        hlava.add(EN, gbc);

        SK = new JButton("SK");
        gbc.gridx = 1;
        gbc.gridy = 1;
        hlava.add(SK, gbc);

hlava je container

Asi som to celé zle pochopil, no už som s toho jeleň.
Výsledok vyzerá takto :

 
Odpovědět
23.8.2013 17:43
Avatar
Kit
Tvůrce
Avatar
Odpovídá na BLADE
Kit:23.8.2013 17:48

Proč tam dáváš na začátku skoro každého řádku "gbc."? Mně to funguje i bez toho.

Odpovědět
23.8.2013 17:48
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
BLADE
Člen
Avatar
Odpovídá na Kit
BLADE:23.8.2013 19:27

ale gbc je ten GridBagConstraints bez toho mi to predsa nerozmiestni tak ako si žiadam.

 
Odpovědět
23.8.2013 19:27
Avatar
Kit
Tvůrce
Avatar
Odpovídá na BLADE
Kit:23.8.2013 20:25

Dal jsem ty příkazy dovnitř GridBagConstraints (kam patří) a funguje to.

Vypadá to potom takto:

JLabel z = new JLabel("Vyberte si 1. jazyk: ");
JButton EN = new JButton("EN");
JButton SK = new JButton("SK");

// konstruktor
{
anchor = NORTHWEST;

weightx = 0.5;
weighty = 0.5;
gridx = 0;
gridy = 0;
hlava.add(z, this);

gridx = 0;
gridy = 1;
hlava.add(EN, this);

gridx = 1;
gridy = 1;
hlava.add(SK, this);

Hlavně přitom nesahám na atributy jiného objektu.

Možná by se to dalo udělat ještě lépe.

Odpovědět
23.8.2013 20:25
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
Milan Gallas
Tvůrce
Avatar
Milan Gallas:23.8.2013 20:55

Jednoduše sem vykódil tohle:

Container hlava = this.getContentPane();
    hlava.setLayout(new GridBagLayout());

    GridBagConstraints gbc = new GridBagConstraints();
    gbc.anchor = GridBagConstraints.FIRST_LINE_START;

   z = new JLabel("Vyberte si 1. jazyk: ");
     gbc.insets = new Insets(5,5,5,5);
     gbc.fill = GridBagConstraints.HORIZONTAL;
     gbc.gridwidth = 2;
     gbc.gridx = 0;
     gbc.gridy = 0;
     hlava.add(z, gbc);

     EN = new JButton("EN");
     gbc.fill = GridBagConstraints.NONE;
     gbc.gridwidth = 1;
     gbc.gridx = 0;
     gbc.gridy = 1;
     hlava.add(EN, gbc);

     SK = new JButton("SK");
     gbc.gridx = 1;
     gbc.gridy = 1;
     gbc.weightx = 0.5;
     gbc.weighty = 0.5;
     hlava.add(SK, gbc);

Je to to co si potřeboval?

Editováno 23.8.2013 20:55
 
Odpovědět
23.8.2013 20:55
Avatar
Milan Gallas
Tvůrce
Avatar
Odpovídá na BLADE
Milan Gallas:23.8.2013 20:56

zarovná ti to doleva a nahoru ať to roztáhneš jakkoliv.

 
Odpovědět
23.8.2013 20:56
Avatar
Kit
Tvůrce
Avatar
Odpovídá na BLADE
Kit:23.8.2013 21:07

Tady to mám kompletní, kdybys měl zájem. Je to funkční.

http://www.itnetwork.cz/dev-lighter/183

Odpovědět
23.8.2013 21:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 26.