1 import java.awt.*;
 2 import java.awt.event.*;
 3 import javax.swing.*;
 4
 5 public class LogANA extends JFrame {
 6
 7     //背景图片bgImage
 8     private ImageIcon bgImage = new ImageIcon("src/main/images/bg.jpg");
 9     //用于处理拖动事件,表示鼠标按下时的坐标,相对于JFrame
10     int xOld = 0;
11     int yOld = 0;
12
13     private ImageIcon bt1mage = new ImageIcon("src/main/images/mini.png");
14     private ImageIcon bt1mage_enable = new ImageIcon("src/main/images/mini_enable.png");
15     private ImageIcon bt2mage = new ImageIcon("src/main/images/close.png");
16     private ImageIcon bt2mage_enable = new ImageIcon("src/main/images/close_enable.png");
17
18
19
20     public LogANA() {
21
22         getContentPane().setLayout(new BorderLayout());
23         this.setLocationRelativeTo(null);
24         this.setSize(bgImage.getIconWidth(), bgImage.getIconHeight());
25
26         //处理拖动事件---去掉默认边框后,不能拖动了,具体实现如下
27         this.addMouseListener(new MouseAdapter() {
28             @Override
29             public void mousePressed(MouseEvent e) {
30                 xOld = e.getX();//记录鼠标按下时的坐标
31                 yOld = e.getY();
32             }
33         });
34
35         this.addMouseMotionListener(new MouseMotionAdapter() {
36             @Override
37             public void mouseDragged(MouseEvent e) {
38                 int xOnScreen = e.getXOnScreen();
39                 int yOnScreen = e.getYOnScreen();
40                 int xx = xOnScreen - xOld;
41                 int yy = yOnScreen - yOld;
42                 LogANA.this.setLocation(xx, yy);//设置拖拽后,窗口的位置
43             }
44         });
45
46
47         JPanel mainPanel = new JPanel();
48         mainPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
49         mainPanel.setSize(bgImage.getIconWidth(), 100);
50         mainPanel.setLayout(new FlowLayout(FlowLayout.RIGHT, 10, 10));
51
52         //关闭按钮
53         JButton miniBtn = new MyIconButton(bt1mage, bt1mage_enable, bt1mage, "");
54         mainPanel.add(miniBtn);
55
56         //关闭按钮
57         JButton closeBtn = new MyIconButton(bt2mage, bt2mage_enable, bt2mage, "");
58         mainPanel.add(closeBtn);
59
60
61         getContentPane().add(mainPanel, BorderLayout.CENTER);
62
63         closeBtn.addActionListener(new ActionListener() {
64             @Override
65             public void actionPerformed(ActionEvent e) {
66                 System.exit(0);
67             }
68         });
69
70         miniBtn.addActionListener(new ActionListener() {
71             @Override
72             public void actionPerformed(ActionEvent e) {
73                 setExtendedState(JFrame.ICONIFIED);//最小化窗体
74             }
75         });
76
77         setUndecorated(true);
78         setLocationRelativeTo(null);
79         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
80     }
81
82     public static void main(String[] args) {
83         LogANA j = new LogANA();
84         j.setVisible(true);
85     }
86
87 }

转载于:https://www.cnblogs.com/aloneblog/p/9638355.html

Swing 设置无边框Frame相关推荐

  1. html5input输入框设置无边框_芯片充电两大改变,无看点的iPad8,上手体验发现并不简单!...

    前不久,苹果召开了秋季新品发布会,但与以往不同的是,往年本该成为"配角"的iPad,没想到此次成为了主角之一,面对着外观不变仅升级芯片新发布的iPad 8,大家好像没有过多的激情, ...

  2. Qt 自定义界面(实现无边框、可移动)

    设置窗口标志为无边框 this->setWindowFlags(Qt::FramelessWindowHint); 设置无边框之后,窗体是无法移动的,下面我们介绍两种方式来进行移动. 1. Qt ...

  3. PotPlayer 高逼格无边框的本地播放器

    PotPlayer 安装以及设置 可以在官网下载安装包:http://potplayer.daum.net 然后安装--运行-- 嗯,是的,PotPlayer的官方皮肤界面就是这么样貌平平,一点都不逼 ...

  4. Qt实现半透明、无边框、可自由移动、不规则的窗体

    目录 预期效果 功能要点 实现步骤 进一步扩展应用 预期效果 先出示效果图一张,如果不是读者需要的,读者可以看完效果图之后就关闭本网页啦. 功能要点 窗口无边框 可自由拖动 背景透明度自定义 边框可设 ...

  5. Qt 之 设置窗口边框的圆角

    Qt技术学习班开始了,更多精彩.好玩的内容等着你,赶紧报名吧! 群号:655815739 Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口.下面分别叙述 ...

  6. 【最终版】PyQt5 自定义标题栏,实现无边框,最小化最大化关闭事件,窗口拖动移动,窗口改变大小,仿百度网盘色调美化,添加内容窗口

    [最终版]PyQt5 自定义标题栏,实现无边框,最小化最大化关闭事件,窗口拖动移动,窗口改变大小,仿百度网盘色调美化,添加内容窗口 文章目录 [最终版]PyQt5 自定义标题栏,实现无边框,最小化最大 ...

  7. PyQt5 自定义标题栏,实现无边框,最小化最大化关闭事件,窗口拖动移动,窗口改变大小,仿百度网盘色调美化

    PyQt5 自定义标题栏,实现无边框,最小化最大化关闭事件,窗口拖动移动,窗口改变大小,仿百度网盘色调美化 文章目录 PyQt5 自定义标题栏,实现无边框,最小化最大化关闭事件,窗口拖动移动,窗口改变 ...

  8. Qt 暗夜黑主题教程(一) 创建带圆角和阴影的无边框窗口

    创建项目 创建一个主窗口为 QWidget 类.带 UI样式表的项目.我的项目名叫 NightDark,窗口类名叫 Widget,刚入门的小白可以跟我命名保持一致方便学习,大佬自便.(不对,大佬怎么来 ...

  9. Qt中设置窗口边框的圆形

    Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口. 下面分别叙述用这两种方式来实现窗口边框圆角的效果. 一.使用setStyleSheet方法 this ...

  10. A7:Unity窗口化无边框模式

    将下面代码复制进入脚本里,然后随便放到一个物体上即可实现窗口化启动无边框哦~ using System; using System.Collections; using System.Runtime. ...

最新文章

  1. Oracle truncate table 与 delete tabel的区别(转)
  2. android指定sqlite路径_Android:自定义Sqlite数据库路径
  3. 【学习笔记】MOOC 数学文化赏析 笔记【补档】
  4. TikZ绘图示例——尺规作图: 椭圆的近似画法
  5. hadoop: Operation category READ is not supported in state standby
  6. C#中获取路径的几种方法
  7. 在Python中如何优雅地处理PDF文件
  8. 2019UI设计岗位最常见的面试题
  9. 【情报热点】扒一扒FFIE做空报告中的调查方法和数据源……
  10. 风控决策引擎——决策流路径规划
  11. python定义公民类、变量有身份证号_Python趣解身份证号码的奥秘!
  12. Docker+VSCode 配置属于自己的深度学习炼丹炉
  13. crsctl命令详解
  14. 3种简单的键盘记录简单介绍
  15. 非易失性NV-SRAM简介
  16. php当前日期自动加一年,php 日期处理 当前时间加一年等
  17. 2ASK和2FSK调制解调仿真
  18. 深度学习-海康机器人visionmaster图像检索
  19. 傅盛提醒:撤离北京相当危险
  20. String、StringBuilder类超详细笔记

热门文章

  1. Spring源码之ApplicationContext(一)
  2. Fedora 14常规娱乐软件
  3. 软件类配置(一)【Windows下使用conda在虚拟环境中安装CUDA、CUDNN及Tensorflow】
  4. MLP多层感知机原理简介+代码详解
  5. 操作SSO对象模型时,异常“SSO_E_CANARY_VALIDATION_FAILURE”的处理
  6. css table 合并单元格
  7. 『ORACLE』Oracle GoldenGate搭建(11g)
  8. shall 基本语法
  9. Eclipse 安装 svn
  10. 如何关闭打开了多个activity的activity