Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Java swing, divná poloha tlačítka

Aktivity
Avatar
mnauik
Člen
Avatar
mnauik:3.3.2014 11:42

Učím se Swing a vytvořil jsem JFrame a do něj jsem umístil JButton s polohou:

tlacitko.setBounds(((int)frameX-100)/2, ((int)frameY-50)/2, 100, 50);

Měl jsem to vypočtené tak, aby to přesně uprostřed toho JFramu, jenže není, je to někde v ******.

static Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
public static int screenX = screenSize.width;
public static int screenY = screenSize.height;
public static int frameX = 600;
public static int frameY = 300;
public static int cislo = 0;
public static void main(String[] args) {
        // TODO Auto-generated method stub
        JFrame mainFrame = new JFrame("Hlavni okno");
        //JPanel mainPanel = new JPanel();
        mainFrame.setVisible(true);
        mainFrame.setBounds((screenX-frameX)/2,(screenY-frameY)/2, 500, 200);
        mainFrame.setResizable(false);
        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainFrame.setLayout(null);
        JButton tlacitko = new JButton("OK");
        tlacitko.setBounds(((int)frameX-100)/2, ((int)frameY-50)/2, 100, 50);
        mainFrame.add(tlacitko);
        JLabel text = new JLabel(Integer.toString(cislo));
        text.setBounds(300,-20,100,50);
        mainFrame.add(text);
 }

Vysvětlí mi prosím někdo ty souřadnice? Jak to funguje? Nechápu, když mám velikost JFrame 500 a umístím komponentu na 250, tak se mi zobrazí někde na kraji framu.

Editováno 3.3.2014 11:43
Odpovědět
3.3.2014 11:42
minusuj mě, ale zdůvodni to ;)
Avatar
Ondřej Štorc
Tvůrce
Avatar
Odpovídá na mnauik
Ondřej Štorc:3.3.2014 11:55

Nejsem si uplně jisty ale myslím že ta souřadnice označuje levý horní roh.. Ale nejsem si jistý..

Nahoru Odpovědět
3.3.2014 11:55
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
mnauik
Člen
Avatar
Odpovídá na Ondřej Štorc
mnauik:3.3.2014 12:12

Tak já to bral tak, že počátek je vlevo nahoře. Napíšu jak jsem vypočetl polohu tlačítka

Nahoru Odpovědět
3.3.2014 12:12
minusuj mě, ale zdůvodni to ;)
Avatar
mnauik
Člen
Avatar
mnauik:4.3.2014 19:52

Tady jste asi spíš víc zaměření na C#, neznáte nějaké forum, kde poradí ohledně Javy?

Nahoru Odpovědět
4.3.2014 19:52
minusuj mě, ale zdůvodni to ;)
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na mnauik
David Hartinger:4.3.2014 20:07

Jsi si vědom toho, že Swing je již mrtvá technologie? Nahrazuje ho JavaFX, měl by jsi se učit tu. Taky tam máš dost statiky, což by asi nemělo být.

Co se týče umisťování, tak se k tomu používají relativní layouty místo absolutních souřadnic, máš tu na to spoustu tutoriálů. Řešíš nesprávný problém.

Nahoru Odpovědět
4.3.2014 20:07
You are the greatest project you will ever work on.
Avatar
David Hartinger
Vlastník
Avatar
Odpovídá na mnauik
David Hartinger:4.3.2014 20:13

Pro úplnost ještě odpověď na tvou původní otázku: http://docs.oracle.com/…ut/none.html Nicméně tento způsob vývoje není správný.

Nahoru Odpovědět
4.3.2014 20:13
You are the greatest project you will ever work on.
Avatar
mnauik
Člen
Avatar
mnauik:4.3.2014 20:25

Vím, že existuje JavaFX, ale myslel jsem, že lepší bude se naučit nejdříve Swing a až pak zkusit to FX. Ale půjdu tedy s dobou a naučím je JavaFX :)

A podívám se tedy na ty layouty, když je to správnější.

Nahoru Odpovědět
4.3.2014 20:25
minusuj mě, ale zdůvodni to ;)
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 7 zpráv z 7.