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

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

Avatar
mnauik
Člen
Avatar
mnauik:

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
Odpovídá na mnauik
Ondřej Štorc:

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:

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:

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 Čápka
Tým ITnetwork
Avatar
Odpovídá na mnauik
David Čápka:

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  +1 4.3.2014 20:07
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na mnauik
David Čápka:

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  +1 4.3.2014 20:13
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
mnauik
Člen
Avatar
mnauik:

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.