加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何在使用未装饰的JFrame时添加对调整大小的支持?

发布时间:2020-12-14 05:50:21 所属栏目:Java 来源:网络整理
导读:我想自定义我的标题栏,最小化,最大化和关闭按钮.所以我用setUndecorated(true);在我的JFrame上,但是我仍然希望能够调整窗口大小.什么是最好的实现方法? 我在RootPane上有一个边框,我可以在Border或RootPane上使用MouseListener.任何建议? import java.awt.
我想自定义我的标题栏,最小化,最大化和关闭按钮.所以我用setUndecorated(true);在我的JFrame上,但是我仍然希望能够调整窗口大小.什么是最好的实现方法?

我在RootPane上有一个边框,我可以在Border或RootPane上使用MouseListener.任何建议?

import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.border.LineBorder;

public class UndecoratedFrame extends JFrame {

    private LineBorder border = new LineBorder(Color.BLUE,2);
    private JMenuBar menuBar = new JMenuBar();
    private JMenu menu = new JMenu("File");
    private JMenuItem item = new JMenuItem("Nothing");

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

    public static void main(String[] args) {
        new UndecoratedFrame();
    }
}

解决方法

正如你所说,你的根窗格上有边框.因此,至少有一个位置(在您的边框绘图的下方),您的根窗格是最重要的组件.因此,您可以添加鼠标监听器和鼠标移动侦听器.

当您的根窗格被点击(并且按下鼠标按钮)时,您的鼠标和动作侦听器将通知您初始和实际的鼠标位置.因此,您可以更新两个值之间的偏移量的帧大小,使您的帧可调整大小.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读