【问题标题】:How can I make a custom Window without borders that is still resizable如何制作仍可调整大小的无边框自定义窗口
【发布时间】:2016-01-24 20:57:47
【问题描述】:

向所有的程序员致敬! :D

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

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

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

【问题讨论】:

  • 从概念上讲,类似于this。基本思想是您将需要在窗口内有一些“排水沟”,当鼠标在其中移动时,您将允许调整窗口大小,然后您需要监视鼠标拖动事件并计算新大小。 This example 演示了如何“移动”一个窗口,调整大小的概念就是基于此

标签: java swing jframe jwindow


【解决方案1】:

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

框架的基本用法是:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-06-18
    • 1970-01-01
    • 2013-07-12
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多