Пропорциональное изменение размера JFrame - PullRequest
6 голосов
/ 24 октября 2011

Я пытаюсь сделать размер JFrame необычным способом: отношение ширины к высоте кадра должно быть постоянным. Я написал этот простой код; в этом случае соотношение составляет 1/2:

public class Panel extends JFrame {
  public Panel() {
    addComponentListener(new ComponentAdapter() {
      @Override
      public void componentResized(ComponentEvent e) {
      System.out.println("Reseized");
      setSize(getSize().width, getSize().width * 2);
    }
  });
}

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

Может быть, * метод 1007 * не применим в этом случае? Так что я должен использовать? Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 14 декабря 2011

Изменение размера окна выполняется ОС; вы получаете обновления только постфактум. Таким образом, хотя вы можете исправить размер после изменения размера, вы не можете ограничить соотношение при изменении размера.

0 голосов
/ 24 октября 2011

Вы можете попробовать

((JFrame)e.getTopLevelAncestor()).pack();

, где e - ваш компонент.Дайте мне знать, если эта работа

...