【问题标题】:Removing a Frame's title bar keeping the resize mechanims - Java删除框架的标题栏保持调整大小机制 - Java
【发布时间】:2011-06-07 21:35:55
【问题描述】:

我的问题与 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 (只考虑标题栏和边框)

如何在不移除 re-size 装饰器的情况下移除顶部标题栏?或者我应该自定义默认标题栏?我怎样才能通过简单的方式做到这一点?

这个想法是用一个框架结束,只有它的边界(和调整大小的工作......)。然后,我可以创建一个自定义标题栏,其中包含一个 JPanel 和触发关闭、最小化等 OS 事件的按钮。

提前感谢您的支持。

【问题讨论】:

  • 我开始回答这个问题,然后意识到已经有一个正确的答案。哦,废话,我什至意识到 已经回答了这个问题!所以关闭这个,伙计。
  • 对不起,实际上我看到了那些帖子,但我想知道是否没有办法只删除标题栏。似乎没有。如果我删除栏,我会删除所有内容。我现在正在研究这种重新调整大小的重新实现方法。谢谢!

标签: java swing jframe


【解决方案1】:

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

另一种选择是使用 JIDE 公共层 - 它提供了其 ResizableSupport 接口的多种实现,包括执行您所描述的 ResizableFrame。

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

【讨论】:

  • 看ResizableFrame代码是一种祝福!我已经在运行了。谢谢!
猜你喜欢
  • 2017-12-11
  • 1970-01-01
  • 1970-01-01
  • 2010-09-10
  • 2012-10-13
  • 1970-01-01
  • 2012-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多