IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 4. diel - Layouty v Jave (druhýkrát)

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
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

 
Odpovedať
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 ?

 
Odpovedať
22.8.2013 18:47
Avatar
Milan Gallas
Tvůrce
Avatar
Odpovedá 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.

Editované 22.8.2013 21:01
 
Odpovedať
22.8.2013 21:00
Avatar
BLADE
Člen
Avatar
Odpovedá 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 :

 
Odpovedať
23.8.2013 17:43
Avatar
Kit
Tvůrce
Avatar
Odpovedá 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.

Odpovedať
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
Odpovedá na Kit
BLADE:23.8.2013 19:27

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

 
Odpovedať
23.8.2013 19:27
Avatar
Kit
Tvůrce
Avatar
Odpovedá 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.

Odpovedať
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?

Editované 23.8.2013 20:55
 
Odpovedať
23.8.2013 20:55
Avatar
Milan Gallas
Tvůrce
Avatar
Odpovedá na BLADE
Milan Gallas:23.8.2013 20:56

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

 
Odpovedať
23.8.2013 20:56
Avatar
Kit
Tvůrce
Avatar
Odpovedá 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

Odpovedať
23.8.2013 21:07
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!