删除框架标题栏保持调整大小机制 - Java

时间:2011-01-12 15:01:47

标签: java swing jframe

我的问题与Jonas在下一个主题上提出的问题有关:

How to add support for resizing when using an undecorated JFrame?

How can I customize the title bar on JFrame?

我想创建一个没有原生标题栏的自定义窗口。这可以通过调用:

来完成
setUndecorated(true);

但是,这也会删除重新调整大小的机制。所以现在我正在使用下一个代码:

 public UndecoratedFrame() {
 this.getRootPane().setWindowDecorationStyle(JRootPane.FRAME);
    menu.add(item);
    menuBar.add(menu);
    this.setJMenuBar(menuBar);
    this.setUndecorated(true);
    this.getRootPane().setBorder(border);
    this.setSize(400,340);
    this.setVisible(true);
}

这会返回一个如下窗口: http://www.roseindia.net/java/example/java/swing/CreateJList.shtml (仅考虑标题栏和边框)

如何删除顶部标题栏而不删除重新设置的装饰器?或者我应该自定义默认标题栏?我怎么能以一种简单的方式做到这一点?

这个想法是以一个只有边框的框架结束(重新调整大小......)。然后,我可以创建一个带有JPanel的自定义标题栏和触发关闭,最小化等操作系统事件的按钮。

提前感谢您的支持。

1 个答案:

答案 0 :(得分:2)

您需要实现自己的鼠标侦听器并解释鼠标手势,以编程方式调整窗口大小。

另一个选择是使用JIDE Common Layer - 它提供了ResizableSupport接口的多个实现,包括ResizableFrame,它可以完成你描述的内容。

http://www.jidesoft.com/javadoc/com/jidesoft/swing/ResizableFrame.html