如何在JFrame TitleBar中添加任何组件

时间:2012-03-08 09:05:59

标签: swing jframe

如何在java swing中的JFrame TitleBar上添加像JButton这样的任何组件。

1 个答案:

答案 0 :(得分:3)

我假设通过“标题栏”你会想到带有窗口菜单按钮,文档或程序标题的标题以及(典型)最大化,最小化,关闭的按钮。

窗口边框由操作系统绘制(通常情况下,无论是哪个部分,例如XServer,它都是窗口管理器)。而这正是用户想要的 - 通常。然后窗口的这一部分超出了Swing的范围,您需要通过本机代码(JNI或其中一个更好的包装器,如JNA)添加组件。

但您可以通过FramesetUndecorated设置为未修饰。这使得整个窗口区域成为您的责任,您必须自己绘制所有内容并关注窗口的可拖动性等内容。想想一个完全“皮肤化”的应用程序。如果您使用的外观支持绘制窗口边框(javax.swing.LookAndFeel#getSupportsWindowDecorations()),您不必自己执行此操作但设置JFrame.setDefaultLookAndFeelDecorated(),LookAndFeel将使用Swing组件绘制边框。然后,您可以通过glasspane或更改绘制标题栏的组件来添加Swing组件。

相关问题