установка размера JFrame с использованием Dimension.setSize - PullRequest
1 голос
/ 27 мая 2011

У меня есть приложение с графическим интерфейсом, где мне нужно установить размер основного JFrame до 80% экрана ширина и 90% высоты экрана. Я попробовал это

public class JFrameDemo extends JFrame{
    public JFrameDemo(String title) throws HeadlessException {
            super(title);
            setLayout(new GridBagLayout());
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

            int height = screenSize.height;
            int width = screenSize.width;
            screenSize.setSize(width*(0.80), height*(0.90));
            int newheight = screenSize.height;
            int newwidth = screenSize.width;

             //Then I put some print statements in the code
            System.out.println("height="+height);
            System.out.println("width="+width);
            System.out.println("0.80*height="+(height*0.80));
            System.out.println("0.90*width="+(width*0.90));
            System.out.println("newheight="+newheight);
            System.out.println("newwidth="+newwidth);

            this.setSize(newwidth, newheight);
            this.addWidgets();
            this.setVisible(true);
        }

        ...
}

Это правильный путь? Я не очень знаком с дизайном приложения GUI .. и я подумал Я мог бы использовать Dimension.setSize (двойная ширина, двойная высота) таким образом.

Операторы печати вызвали этот вывод ..

height=768
width=1366
0.80*height=614.4
0.90*width=1229.4
newheight=692
newwidth=1093

Ну, newheight и newwidth - это не совсем 80% или 90% ширины, значения высоты.

Любые предложения по улучшению приветствуются

спасибо

знак

1 Ответ

0 голосов
/ 27 мая 2011

Мне потребовалось некоторое время, но это просто опечатка.

На самом деле вы вычисляете 90% ширины и 80% высоты вместо 80% ширины и 90% высоты.

Поменяйте местами проценты и все получится нормально.

...