Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Центрирование окна относительно компонента


Автор: PovAnd 27.3.2008, 12:16
Подскажите, есть ли в стандартных утилитах Swing, метод который бы центрировал окошко относительно негоко компонента, т.е. метод сродни такому :

Код

...
        Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
        int maxx = new Double(screen.getWidth()).intValue();
        int maxy = new Double(screen.getHeight()).intValue();
        int x = (maxx - FORM_WIDTH) / 2;
        int y = (maxy - FORM_HEIGHT) / 2;
        dialog.setLocation(x, y);
...


.. здесь правда центрирование относительно экрана, где  FORM_WIDTH и FORM_HEIGHT размеры центрируегомого компонента

Автор: dorogoyIV 27.3.2008, 13:36
Код

setLocationRelativeTo(Component c)

Автор: PovAnd 27.3.2008, 16:06
не-е. это немного не то, после этого метода получится так:

http://ipicture.ru/

А надо что б получилось так:

http://ipicture.ru/



Автор: agR 27.3.2008, 19:30
Цитата(PovAnd @  27.3.2008,  16:06 Найти цитируемый пост)
не-е. это немного не то

как раз самое то  smile 
В твоем случае, у меньшего окна вызываешь setLocationRelativeTo(Component c) и вместо "Component c" указываешь свое большое окно, т.е. другими словами указываешь мелкому, чтобы он центрировался относительно большого.

Типа так:
Код

import javax.swing.JFrame;

public class CenterFrame {
    public static void main(String[] args) {
        JFrame frame= new JFrame("Parent");
        frame.setSize(400, 500);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        
        JFrame childFrame = new JFrame("Child");
        childFrame.setSize(200, 200);
        childFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        childFrame.setLocationRelativeTo(frame);
        childFrame.setVisible(true);
    }
}

Автор: PovAnd 28.3.2008, 10:32
хех.. ну да setLocationRelativeTo - то что надо, взял свои слова обратно. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)