JTextField - pozicovani – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

JTextField - pozicovani – Java – Fórum – Programujte.comJTextField - pozicovani – Java – Fórum – Programujte.com

 

polerok0
Návštěvník
22. 1. 2010   #1
-
0
-

Napozicoval jsem si tlacitka a krasne se mi zobrazili do spodni casti, ale ve chvili, kdy vlozim JTextField tak se mi to vsechno narve na 1. radek a pozicovani proste nejde. Nemel by nekdo tip jak to rozchodit a jak pozicovat ten JTextField? Diky moc.

*kod orezan importy*



public class GUI extends JDialog implements ActionListener {

public JButton quit = new JButton("Quit");
public JButton logged = new JButton("Logged");
public JTextField day = new JTextField(Date.day(), 2);
public JTextField month = new JTextField(Date.month(), 2);
public JTextField year = new JTextField(Date.year(), 4);
public FlowLayout layout = new FlowLayout();

public GUI() {
super();
setSize(500, 500);//doupravit velikost okna

Dimension obrazovka = Toolkit.getDefaultToolkit().getScreenSize();
setLocation(obrazovka.width / 4, obrazovka.height / 4);

setResizable(false);
setModal(true);

setTitle("Logged geocoin(s)");

quit.setSize(60, 30);//doupravit pozici
quit.setLocation(420, 430);

logged.setSize(80, 30);//doupravit pozici
logged.setLocation(15, 430);

getContentPane().setLayout(null);
getContentPane().add(quit);
getContentPane().add(logged);

quit.addActionListener(this);
quit.setActionCommand("quit");

logged.addActionListener(this);
logged.setActionCommand("logged");

setDefaultCloseOperation(DISPOSE_ON_CLOSE);


day.setLocation(15, 430);
getContentPane().setLayout(layout);
getContentPane().add(day);
getContentPane().add(month);
getContentPane().add(year);

}

public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("quit")) {
dispose();
} else if (e.getActionCommand().equals("logged")) {
//dodefinovat main
}
}

public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {

public void run() {
GUI dlg = new GUI();
dlg.setVisible(true);
}
});
}
}

Nahlásit jako SPAM
IP: 85.70.48.–
liborb
~ Redaktor
+18
Guru
22. 1. 2010   #2
-
0
-

Nastavil sis tam FlowLayout, takže to bude na jednom řádku.

Nahlásit jako SPAM
IP: 85.207.166.–
polerok0
Návštěvník
22. 1. 2010   #3
-
0
-

A muzu se zeptat co tam mam nastavit?

Nahlásit jako SPAM
IP: 85.70.48.–
liborb
~ Redaktor
+18
Guru
22. 1. 2010   #4
-
0
-
Nahlásit jako SPAM
IP: 85.207.166.–
polerok0
Návštěvník
22. 1. 2010   #5
-
0
-

No, ja bych byl nejradsi, kdyby to slo pozicovat stejne jako treba ty tlacitka

quit.setLocation(420, 430);

Nahlásit jako SPAM
IP: 85.70.48.–
liborb
~ Redaktor
+18
Guru
22. 1. 2010   #6
-
0
-

Když si tam měl jenom ty tlačítka, tak si tam měl asi jenom toto:



getContentPane().setLayout(null);


Pak si tam přidal textové pole a s nimi toto:


getContentPane().setLayout(layout);


Takže to druhé nastavení layoutu, které změní to předchozí, dej pryč a třeba budeš zase mít to, co si chtěl.

Nahlásit jako SPAM
IP: 85.207.166.–
polerok0
Návštěvník
22. 1. 2010   #7
-
0
-

To jsem samozrejme zkousel, ale bez radku

getContentPane().setLayout(layout);
se ten JTextField zahadne nezobrazuje....

Nahlásit jako SPAM
IP: 85.70.48.–
liborb
~ Redaktor
+18
Guru
22. 1. 2010   #8
-
0
-

Co se dá dělat, budeš to muset udělat pořádně tj. nastudovat layouty. Alespoň si ušetříš nepříjemná překvapení v budoucnu. On totiž žádný layout (null) je tak trochu nouzovka a je lepší ho nepoužívat.

Nahlásit jako SPAM
IP: 85.207.166.–
polerok0
Návštěvník
22. 1. 2010   #9
-
0
-

Sakra, to je presne to co jsem nechtel, protoze jsem potrebova presne rozmisteni objektu....

Nahlásit jako SPAM
IP: 85.70.48.–
liborb
~ Redaktor
+18
Guru
22. 1. 2010   #10
-
0
-

Absolutní pozice prvků a nastavení jejich velikosti jde proti "principu Javy". Poměrně rychle se tím dostaneš do problémů. Stačí změnit text, font nebo aplikaci pustit na jiném OS a všechno je jinak. Proto různé layouty a proto je absolutní pozicování ta horší varianta.
A na druhou stranu si myslím, že určitě nepotřebuješ absolutní pozice ovládacích prvků.
Btw zkoušel si to bez tlačítek (jenom TF) a různé pozice?

Nahlásit jako SPAM
IP: 91.203.96.–
polerok0
Návštěvník
22. 1. 2010   #11
-
0
-

Asi to nepotrebuju, ale proste me rozciluje, ze nemuzu udelat vzhled jaky chci ja... TF se zobrazi jen pokud tam je Layout jiny nez null a pozicovat s jakymkolik jinym nez null mi proste nejde, asi jsem uplne blbej.... GridLayout mi to roztahne na sloupce o vysce celeho okna, BorderLayout mi zase nahodi pres cele okno jeden TF a zbytek proste neni BoxLayout se mi ani nepodarilo rozjet..... Jedine, kde se mi TF nerozhodil a vypada to alespon trochu normalne je FlowLayout.
Takze dobra, jde nejak udelat v FlowLayout, abych rekl: tohle tlacitko bude zarovnane vlevo, tohle v pravo?(protoze primarni centrovani je hnusne a rozciluje me to....) Pripadne jeste jak vlozit prazdny radek. Diky :o)

Nahlásit jako SPAM
IP: 85.70.48.–
liborb
~ Redaktor
+18
Guru
22. 1. 2010   #12
-
0
-

Pozicovat v jiném než null layoutu nejde. A vzhled si samozřejmě můžeš udělat jaký chceš, ale nebudeš udávat absolutní pozice, ale "relativní" umístění v daném layoutu.
Budeš potřebovat panel resp. několik panelů, pokud chceš nějaký neobyčejný vzhled. Kombinací vnořených panelů a nastavením různých layoutů dosáhneš kýženého. Můžeš začít tím odkazem, co jsem ti dal - leccos se tam dozvíš.

Nahlásit jako SPAM
IP: 195.189.142.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 32 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý