Класс в библиотеке Swing или AWT с гибким размером - PullRequest
2 голосов
/ 15 июля 2011

Я ищу класс в javax.swing или java.awt, который дает гибкий размер объекту.Скажите, что мы называем этот класс MyClass.Когда я добавлю MyClass к MyPanel, он будет сформирован с объектами, которые лежат внутри него.Чтобы быть более точным, если я нарисую прямоугольник, размер MyClass будет размером прямоугольника, если я нарисую круг, то размер MyClass's будет размером с круг и т. Д.

Пока я видел некоторыеклассы, но все имеют прямоугольную форму: Container, Canvas, JLayeredPane и т. д.

Есть предложения?

Ответы [ 3 ]

3 голосов
/ 16 июля 2011

При наличии подходящего макета любой класс, реализующий интерфейс Shape, является хорошим кандидатом. Вы можете использовать createTransformedShape() метод AffineTransform для его преобразования, как показано в этом примере .

2 голосов
/ 16 июля 2011

Вы можете просто использовать другой JPanel, но ключ в том, какие менеджеры компоновки используют контейнеры (возможно, другой JPanel) и как компоненты размещаются в контейнерах - с какими ограничениями, если они есть. Подробнее об этом читайте в руководствах о том, как использовать различные более удобные для пользователя менеджеры компоновки: Компоновка компонентов в контейнере .

Теперь, что касается вашего второго вопроса, касающегося рисования фигур, вам нужно будет дать больше информации для его решения. Кривые разрешены безграничны? Или разрешены только прямоугольники и овалы?

1 голос
/ 16 июля 2011

по следующим этому уроку я могу представить, что, создав необработанный полностью полупрозрачный JFrame / JDialog , моим любимым будет просто JWindow который по умолчанию не декорирован (небеса это Container потеряно от Swing tutorial !, или я слепой ???)

к этому полностью прозрачному вы должны добавить родительский JPanel или лучше будет JLabel . Там вы должны добавить любой из возможных острых предметов

Я думаю, что вы можете забыть об использовании AWT Component s, все возможные варианты начинаются с "J" == Swing JComponents

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...