Как создать пользовательский плавающий компонент Swing без JFrame? - PullRequest
2 голосов
/ 27 июня 2011

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

Я не хочу расширятьJFrame, потому что мой компонент действительно прост, а JFrame реализует множество функций, которые мне не нужны.

Кого мне начинать?Какой класс я должен продлить?

Большое спасибо

РЕДАКТИРОВАТЬ ---------------------------------------

Спасибо, ребята!

Я проверю ссылки, которые вы отправили.Кроме того, можно ли Java рисовать на экране без Swing API?

Ответы [ 3 ]

5 голосов
/ 27 июня 2011

Если вам не нужны функции, которые предоставляет JFrame, и вам нужна просто плавающая графика, используйте JWindow.У него нет оконных декораций.

Пример с простой меткой в ​​JWindow:

public static void main(String args[]) {
    JWindow w = new JWindow();
    w.add(new JLabel("Testing a Window!!!!!"));
    w.setLocation(300, 300);
    w.pack();
    w.setVisible(true);
}
1 голос
/ 27 июня 2011

Зависит от того, что вам нужно. Вероятно, вам нужен неокрашенный JFrame. Я не совсем понимаю ваш аргумент о «всей функциональности, которая мне не нужна», потому что на разных уровнях вы все равно получите ее, либо с помощью другого компонента, либо с помощью лежащей в основе ОС. Вы не можете избавиться от этого.

Теперь при решении вашего вопроса вы всегда можете использовать JDialog

1 голос
/ 27 июня 2011

В общем, вам необходимо ознакомиться с Java2D , о чем свидетельствует комментарий @ trashgod . В частности, Компостирование графики . И поймите, что использование контейнера верхнего уровня для рендеринга компонентов Swing всегда обязательно.

Примечание

Если @ trashgod даст ответ, я с удовольствием уберу свой и проголосую за него соответственно.

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