如何在没有JFrame的情况下创建自定义浮动Swing组件?

时间:2011-06-27 15:59:58

标签: java swing uicomponents custom-component

我想创建一个自定义的swing组件,例如桌面小部件,它不需要JFrame(或扩展它)来打印在屏幕上。

我不想扩展JFrame,因为我的组件非常简单,JFrame实现了很多我不需要的功能。

我是谁开始的?我应该延长哪一堂课?

非常感谢

编辑---------------------------------------

谢谢你们!

我会查看您发送的参考文献。 另外,java是否可以在没有swing API的情况下在屏幕上绘图?

3 个答案:

答案 0 :(得分:5)

如果您不想要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 :(得分:1)

总而言之,您需要熟悉Java2D,正如 @trashgod 的评论所示。特别是Composting Graphics。并且要了解使用顶级容器来呈现Swing组件始终是必需的。

注意

如果 @trashgod 提供了答案,我很乐意将其删除并相应地投票。

答案 2 :(得分:1)

取决于您的需求。您可能只需要一个未修饰的JFrame。我并不真正理解你关于“我不需要的所有功能”的论点,因为在不同的层次上你无论如何都会得到它,无论是通过另一个组件还是通过底层操作系统。你无法摆脱这一点。

现在解决您的问题,您可以随时使用JDialog