2012-04-29 2 views
3

Я сделал программу, используя несколько JFrames на Mac, и разрешение было в порядке, все правильно подошло к экрану. Но когда я запускаю программу на своем ПК, JFrames слишком велики и идут прямо с экрана.Java: разрешение JFrame?

Мой вопрос: возможно ли установить универсальное разрешение на JFrame, чтобы все компоненты были нарисованы немного меньше? Я бы предпочел сделать это, а затем пройти через всю программу и изменить размер каждого компонента вручную.

+0

* «Я сделал программу, используя несколько JFrames ..«* См. [Использование нескольких JFrames, Good/Bad Practice?] (Http://stackoverflow.com/a/9554657/418556) *« Возможно ли установить универсальное разрешение на JFrame, чтобы все компоненты нарисованы немного меньше? »* Надеюсь, что нет! Наличие графического интерфейса на моем экране, где текст« слишком мал »(читай« меньше стандартного »), мне бесполезно. Используйте макеты для создания компактного (например, 'CardLayout') и изменяемый по размеру графический интерфейс. Если все остальное не удается, отбросьте панель содержимого в область прокрутки (но ситуация должна была бы быть ужасной, чтобы оправдать это). –

ответ

5

Я сделал программу, используя несколько JFrames

неправильное использование CardLayout вместо этого, только если есть реальная причина использования JDialog или JOptionPane с родителем и (JDialog) возможно с setModal (правда) с одной JFrame

Но когда я запустить программу на моем компьютере, то JFrames являются слишком большими и идти прямо с экрана

Можно установить универсальное разрешение на JFrame так, чтобы все компоненты были нарисованы немного меньше?

использование собственно LayoutManager, конечно, не простая работа, требуется реальное усилие

я предпочел бы сделать это затем пройти через всю программу и размер каждого компонента вручную.

использование собственно LayoutManager,

  • для лучшей помощи рано изменить вопрос с SSCCE продемонстрировало ваш вопрос с различным размером экрана Betweens ПК или платформа
+0

Спасибо, я думаю, вы неправильно поняли, что я имел в виду под« множественными JFrames, хотя. Я просто имел в виду, что вся программа включает в себя более одного, они не все сразу появляются: PI использует абсолютный макет, поэтому я буду возиться с макетами, которые были рекомендованы, и посмотреть, что я может сделать, чтобы исправить мою проблему. – Blackvein

+0

приветствуются – mKorbel

4

Насколько я знаю, вы не можете изменить разрешение компонентов Swing. Но вы можете получить текущий размер экрана из системы (пример here). С помощью этого размера экрана вы можете настроить свои компоненты.

Если вы кодируете свой графический интерфейс с умом, вам не придется вручную изменять все компоненты вашего графического интерфейса. Вместо этого JPan верхнего уровня (или JFrame или когда-либо) будет корректировать свой размер из-за его содержащихся компонентов (например, с чем-то вроде pack()). Таким образом, только несколько компонентов будут иметь жесткий размер. Этот размер также может быть вытеснен в класс или файл, который легко редактировать.

0

я столкнулся с такой проблемой, как ваши х и Я решил это с помощью JScrollbar! Here - как сделать ваш JFrame прокручиваемым.