如何在Java swing中的JFrame TitleBar上添加任何组件(如JButton)。如何在JFrame TitleBar中添加任何组件
1
A
回答
3
我假设你通过窗口菜单按钮,文档或程序标题和按钮(标准)来最大化,最小化,关闭“标题栏”。
窗口边框由操作系统绘制(无论哪个部分,例如使用XServer,大多数情况下它将成为窗口管理器) - 通常。这就是用户想要的 - 通常。然后,这部分窗口不在Swing的范围之内,您需要通过本地代码(JNI或其更好的包装器之一,如JNA)添加组件。
但您可以将Frame
设置为未修饰,通过setUndecorated
。这会让整个窗口区域担负起责任,您必须自己绘制所有内容并关心窗口的可拖动性。想想一个完全“皮肤”的应用程序。如果您使用的外观支持绘制窗口边框(javax.swing.LookAndFeel#getSupportsWindowDecorations()
),则不必自己执行此操作,而是设置JFrame.setDefaultLookAndFeelDecorated()
,LookAndFeel将使用Swing组件绘制边框。然后,您可以通过glasspane或通过更改绘制标题栏的组件来添加Swing组件。
+1,用于很好地包装有效信息。 – 2012-03-08 10:01:14