2013-03-06 3 views
1

Использование GroupLayout для кодирования моего приложения GUI. Проблема заключается в том, что:Jframe не отображает все содержимое при загрузке на другом компьютере

1) Мое разрешение ПК составляет 1490 * 900. Когда я запускаю графический интерфейс, все содержимое отображается четко.

2) Теперь на моем ноутбуке (разрешение 1366 * 768), когда я запускаю тот же графический интерфейс, все содержимое не отображается, я пытаюсь изменить его размер, но напрасно.

Как я могу сделать все содержимое подходящим для графического интерфейса на моем ноутбуке?

The GUI коды слишком долго, я показываю только основные части:

static Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
static int width = (int) screenSize.getWidth();//Get Resolution of Screen 
static int height = (int) screenSize.getHeight(); 

public Menu_Modifications_Single() { 
    setIconImage(Toolkit.getDefaultToolkit().getImage(Menu_Modifications_Single.class.getResource("/Images/bug-red.png"))); 
    setTitle("Automated Bug Processing"); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setBounds(100, 100, width,height);//Get Screen Resolution Of Monitor Automatically 
    setResizable(true); 

    setExtendedState(JFrame.MAXIMIZED_BOTH);//Automatically Maximize JFrame Upon Loading 

Я попробовал пакет(), но это не похоже на работу.

+0

Существует проблема 'setResizble'. Если я правильно помню, вы должны установить это ПОСЛЕ того, как рамка станет видимой. Похоже, вы не используете менеджеров макетов, которые помогли бы решить эту проблему. – MadProgrammer

+0

Не используйте 'getScreenSize', он не будет учитывать такие вещи, как панель задач/док-станции. – MadProgrammer

ответ

1

Попробуйте использовать pack(), но после того, как вы добавите все компоненты в свой фрейм. Затем после этого используйте методы setSize или setBounds. Поэтому сначала добавьте все свои компоненты, затем вызовите pack(), затем, наконец, установите размер. Посмотрите, работает ли это.

EDIT:

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
setBounds(0,0,screenSize.width, screenSize.height); 
+0

Я пробовал свой путь, пока не работает. –

+0

hmm. Не пытайтесь использовать static и не лить getWidth для int. См. Отредактированный ответ. Также в вашем коде я не могу видеть setVisible (true)? –

+0

Снова то же самое. код имеет видимые значения true. Он отображает меню, но нижняя часть его обрезается. –

Смежные вопросы