NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: [Java] umístění komponent na form

V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Vítězslav Škrabal:13.1.2016 19:16

Zdravím
Pokouším se učit programovat v javě na grafické bázi v prostředí Eclipse.Nedaří se mi umístit komponenty například JBotton na místo kde já chci zatím se mi podařilo umístit pár komponent ale jedna za druhou viz příloha

 
Odpovědět
13.1.2016 19:16
Avatar
Martin Križan:13.1.2016 21:21

Skús do okna najprv umiestniť "Absolute layout" a až na ten umiestňovať ďalšie komponenty.

Editováno 13.1.2016 21:23
 
Nahoru Odpovědět
13.1.2016 21:21
Avatar
Atrament
Člen IT Redactor Gang
Avatar
Atrament:13.1.2016 21:27

Prostuduj si jak se pracuje s jednotlivými layouty - https://docs.oracle.com/…t/index.html. Pokud chceš dávat komponenty vysloveně kam se ti zlíbí, zaměř se na takzvaný Absolute Layout, což je prázdný layout, kde specifikuješ jednotlivým komponentám přesnou lokaci pomocí souřadnic, ale to je postup který nemohu doporučit, protože takhle umístěné komponenty jsou tam natvrdo zadrátované - když resizneš okno tak na to nebudou nijak reagovat.

 
Nahoru Odpovědět
13.1.2016 21:27
Avatar
Martin Križan:13.1.2016 21:29

Môžeš použiť aj iný layout ale pomocou tohto umiestniš komponenty presne tam kde chceš. Ja väčsinou v eclipse používam ešte gridlayout. Na "robenie okien" je však podĺa mňa lepší netbeans a sceenbuilder.

 
Nahoru Odpovědět
13.1.2016 21:29
Avatar
Odpovídá na Martin Križan
Vítězslav Škrabal:14.1.2016 13:17

Skús do okna najprv umiestniť "Absolute layout" a až na ten umiestňovať ďalšie komponenty.

Jak se to provede? a ten obrázek co máš přiložený tak to je v Eclipse? popiš krok za krokem jak na to ? díky

 
Nahoru Odpovědět
14.1.2016 13:17
Avatar
Martin Križan:14.1.2016 15:24

Áno to je eclipse. Tak tu to máš krok po kroku:
1.Klikni pravým tlačítkom na package projektu, zvoľ New a potom Other.(obr.1) Dá sa to aj klávesovou skratkou Ctrl+N..
2.Malo by sa ti zobraziť okno kde vyberáš čo chceš vytvoriť, ty zvolíš WindowBuilder potom Swing Designer a vyberieš JFrame(obr.2).
3.Nastavíš názov JFrame-u
4.Na grafický návrhár sa dostaneš kliknutím na Design(obr.3)
5.Vybereš AbsoluteLayout (alebo niaky iný, proste ten ktorý chceš) a vložíš ho do okna kliknutím.
6.Môžeš umiestňovať komponenty kam chceš.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
14.1.2016 15:24
Avatar
Odpovídá na Martin Križan
Vítězslav Škrabal:14.1.2016 17:27

3.Nastavíš názov JFrame-u

To mě nevezme hlásí to chybu ale není mi jasné jak se to propojí z hlavní třídou ,jinak mě to velmi pomohlo díky

 
Nahoru Odpovědět
14.1.2016 17:27
Avatar
Martin Križan:14.1.2016 18:11

Ten vytvorený JFrame je hlavná trieda. Akú chybu?

 
Nahoru Odpovědět
14.1.2016 18:11
Avatar
Odpovídá na Martin Križan
Vítězslav Škrabal:14.1.2016 20:39

Už to pomalu chápu velice ti děkuji za pomoc já umím :-) trochu v delphi.Narazil jsem na další problém kde dělám chybu nebo jak to má být ? díky viz příloha

 
Nahoru Odpovědět
14.1.2016 20:39
Avatar
Martin Križan:14.1.2016 21:48

Neviem čo si tým chcel dosiahnuť.
Ak si chcel to aby bol ten RadioButton zaškrtnutý treba použiť setter

rdbtnTam.setSelected(true)

a ak si chcel aby sa spustil niaky kód keď je zaškrtnuty použi podmienku

if(rdbtnTam.isSelected()){
        //kód
}

Odporúčam ti prečítať si články na tejto stránke o swingu je tu toho celkom dosť.

 
Nahoru Odpovědět
14.1.2016 21:48
Avatar
Vítězslav Škrabal:15.1.2016 10:24

Díky za pomoc tak to má být tak to funguje mně dělají problémy bloky začínající "{" a končící "}"

JButton btnKlik = new JButton("Klik");
                btnKlik.addActionListener(new ActionListener() {
                        public void actionPerformed(ActionEvent arg0) {
                        if      (rdbtnTam.isSelected())
                                                {       progressBar.setValue(i++);}
                        { if (  rdbtnSpet.isSelected())
                            {   progressBar.setValue(i--);}

                                                }
                        }
                });
 
Nahoru Odpovědět
15.1.2016 10:24
Avatar
Martin Križan:15.1.2016 14:47

Pred tým druhým "if" nemusí byť "{".

 
Nahoru Odpovědět
15.1.2016 14:47
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Vítězslav Škrabal
David Novák:15.1.2016 16:25

Pokud ti dělají problémy { }, tak zkus používat inteligentní (ano - utahuju si z Javistů :D) zápis:

JButton btnKlik = new JButton("Klik");
btnKlik.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0)
    {
        if (rdbtnTam.isSelected())
        {
           progressBar.setValue(i++);
        }

        if (rdbtnSpet.isSelected())
        {
           progressBar.setValue(i--);
        }
    }
});

Všímáš, jak je to přehlednější a na první pohled vidíš, co k čemu patří a kde jaký blok končí? ;)

Nahoru Odpovědět
15.1.2016 16:25
Chyba je mezi klávesnicí a židlí.
Avatar
Atrament
Člen IT Redactor Gang
Avatar
Odpovídá na David Novák
Atrament:15.1.2016 16:44

Ono by bohatě stačilo kdyby se naučil používat automatické formátování kódu, které Eclipse určitě umí :)

 
Nahoru Odpovědět
15.1.2016 16:44
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Atrament
David Novák:15.1.2016 17:02

To jo - výsledek by asi byl stejný.. Ale přece si nenechám utéct příležitost si rýpnout do Javovských konvencí :D

Jinak právě používání IDE je podle mě příčinou jeho problému - nechápe, co to blok je a k čemu slouží..

BTW.. Je Java ok s tímhle?

JButton btnKlik = new JButton("Klik");
btnKlik.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent arg0)
    {
        if (rdbtnTam.isSelected())
           progressBar.setValue(i++);

        if (rdbtnSpet.isSelected())
           progressBar.setValue(i--);
    }
});

V Javě jsem nikdy nic nedělal, takže nevím :P

Nahoru Odpovědět
15.1.2016 17:02
Chyba je mezi klávesnicí a židlí.
Avatar
Vítězslav Škrabal:15.1.2016 17:08

OK to je v pořádku
Teď chci na komponentě JLabel nastavit visible při i >= -1 na false v události stisku tlačítka ale tam to způsobí chybu ale dole v kódu to funguje 8-|

JLabel label = new JLabel("-1");
label.setVisible(false);
label.setBounds(101, 89, 17, 14);
contentPane.add(label);
 
Nahoru Odpovědět
15.1.2016 17:08
Avatar
Atrament
Člen IT Redactor Gang
Avatar
Odpovídá na David Novák
Atrament:15.1.2016 17:27

Java jo, já ne :) jsem striktně pro dělaní závorek i okolo pouhého jednoho řádku ve větvích podmínek :)

 
Nahoru Odpovědět
15.1.2016 17:27
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na Atrament
David Novák:15.1.2016 17:34

Já jen, pokud má některou větev, která je delší než jeden řádek.. :P

if (...)
   prikaz;
else if (...)
   prikaz;
else
   prikaz;

Tohle se mi líbí :D

Ale když by tam byla delší větev, tak už udělám všechny s blokem, aby to nebylo škaredé..

if (...)
{
   prikaz;
}
else if (...)
{
   prikaz;
   prikaz;
}
else
{
   prikaz;
}
Nahoru Odpovědět
15.1.2016 17:34
Chyba je mezi klávesnicí a židlí.
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 18 zpráv z 18.