【问题标题】:How to add any Component in the JFrame TitleBar如何在 JFrame TitleBar 中添加任何组件
【发布时间】:2012-03-08 09:05:58
【问题描述】:

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

【问题讨论】:

    标签: swing jframe


    【解决方案1】:

    我假设您认为标题栏是带有窗口菜单按钮、文档或程序标题以及(典型)最大化、最小化、关闭按钮的标题。

    窗口边框由操作系统绘制(不管是什么部分,例如,对于 XServer,它在大多数情况下都是一个窗口管理器)——通常。这就是用户想要的——通常。然后这部分窗口超出了 Swing 的范围,您需要通过本机代码(JNI 或其更好的包装器之一,如 JNA)添加组件。

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

    【讨论】:

      猜你喜欢
      • 2014-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      • 2014-08-18
      相关资源
      最近更新 更多