如何制作自定义 Window 且仍可调整大小的无边框

How can I make a custom Window without borders that is still resizable

各位程序员大家好! :D

我想创建一个没有边框和大小按钮的 JFrame。例如像 Steam-program for PC 的框架。我搜索并找到了 JWindowJFramesetUndecorated 方法。

当我使用这些选项之一时,我得到一个无边框的 window,但我无法调整它的大小。有没有简单的方法来保留此功能,尤其是 "snap-feature"?我的意思是 Valve 设法以某种方式解决了这个问题:)

This question完美地描述了我想要的,但只有一个答案,而且不是很有帮助...

查看 Resizing Components。这是一个通用的 class,允许您调整任何组件的大小。当鼠标位于框架边缘时,它将提供适当的光标。

框架的基本用法是:

JFrame frame = new JFrame("SSCCE");
frame.setUndecorated( true );

ComponentResizer cr = new ComponentResizer();
cr.registerComponent(frame);

当然,您需要确保框架的边缘周围有空白边框,以便将 MouseEvents 传递到框架而不是添加到框架的组件。