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.
Člen
Zobrazeno 18 zpráv z 18.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Skús do okna najprv umiestniť "Absolute layout" a až na ten umiestňovať ďalšie komponenty.
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.
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.
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
Á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š.
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
Ten vytvorený JFrame je hlavná trieda. Akú chybu?
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
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ť.
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--);}
}
}
});
Pred tým druhým "if" nemusí byť "{".
Pokud ti dělají problémy { }, tak zkus používat inteligentní (ano - utahuju si z Javistů ) 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čí?
Ono by bohatě stačilo kdyby se naučil používat automatické formátování kódu, které Eclipse určitě umí
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í
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
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
JLabel label = new JLabel("-1");
label.setVisible(false);
label.setBounds(101, 89, 17, 14);
contentPane.add(label);
Java jo, já ne jsem striktně pro dělaní závorek i okolo pouhého jednoho řádku ve větvích podmínek
Já jen, pokud má některou větev, která je delší než jeden řádek..
if (...)
prikaz;
else if (...)
prikaz;
else
prikaz;
Tohle se mi líbí
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;
}
Zobrazeno 18 zpráv z 18.