【发布时间】:2012-03-08 09:05:58
【问题描述】:
如何在 java swing 的 JFrame TitleBar 上添加像 JButton 这样的任何组件。
【问题讨论】:
如何在 java swing 的 JFrame TitleBar 上添加像 JButton 这样的任何组件。
【问题讨论】:
我假设您认为标题栏是带有窗口菜单按钮、文档或程序标题以及(典型)最大化、最小化、关闭按钮的标题。
窗口边框由操作系统绘制(不管是什么部分,例如,对于 XServer,它在大多数情况下都是一个窗口管理器)——通常。这就是用户想要的——通常。然后这部分窗口超出了 Swing 的范围,您需要通过本机代码(JNI 或其更好的包装器之一,如 JNA)添加组件。
但是您可以通过setUndecorated 将Frame 设置为未修饰。这使整个窗口区域由您负责,您必须自己绘制所有内容并注意窗口的可拖动性等事情。想想一个完全“蒙皮”的应用程序。如果您使用的外观支持绘制窗口边框 (javax.swing.LookAndFeel#getSupportsWindowDecorations()),您不必自己执行此操作,而是设置JFrame.setDefaultLookAndFeelDecorated(),LookAndFeel 将使用 Swing 组件绘制边框。然后,您可以通过 glasspane 或更改绘制标题栏的组件来添加 Swing 组件。
【讨论】: