Как отобразить панель в другой панели? - PullRequest
1 голос
/ 27 февраля 2011

Я пишу простую графическую программу на Java.

Итак, у меня есть 3 класса.

  1. Первый класс - это графический интерфейс без расширения JFrame, он загружает панель меню и панель (класс рисования)

  2. Второй класс - это класс рисования, он расширяет JPanel и имеет простые графические команды.

  3. Третий класс - это класс анимации, он отображает анимацию. Это также расширяет JPanel.

Итак, мой вопрос заключается в следующем: как отобразить класс анимации на панели класса GUI? Я хочу, чтобы он отображался вместо класса рисования. Когда я пытаюсь разместить его там, он отображает крошечный прямоугольник рядом с панелью класса рисования. Я не очень хорош в рамах и панелях. Заранее большое спасибо!

Ответы [ 3 ]

1 голос
/ 27 февраля 2011

Возможно, вы захотите написать

GUIFrame.remove(drawingPanel);
GUIFrame.add(animationPanel);
GUIFrame.pack();

Однако поведение может отличаться, если к вашему GUIFrame добавлены другие компоненты. Трудно помочь вам именно потому, что вы не опубликовали SSCCE.

1 голос
/ 27 февраля 2011

Все JPanels имеют LayoutManager, который довольно удобно управляет размещением компонентов.Макет по умолчанию - FlowLayout, режим которого по умолчанию будет просто размещать каждый компонент справа от последнего компонента.

Если вы хотите изменить макет на что-то более полезное, есть много опций;BorderLayout, GridLayout, макет GridBag являются популярными.Я использую MigLayout, внешнюю библиотеку, которая очень мощная :).

Поскольку он выглядит маленьким, попробуйте принудительно установить размер с помощью setSize (w, h) или setPreferredSize (w, h).

0 голосов
/ 27 февраля 2011

Итак, мой вопрос заключается в следующем: как отобразить класс анимации на панели класса GUI?Я хочу, чтобы он отображался вместо класса рисования.

Используйте Макет карты .

...