- 浏览: 23510 次
- 性别:
- 来自: 深圳
最新评论
用JAVA swing做一个项目,类似QQ实现靠边隐藏的代码记录如下:
package com.szboc.ui;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JFrame;
import javax.swing.Timer;
/**
* 实现窗体靠显示器边隐藏的类
* 窗体在屏幕边缘隐藏
* @author formssi
*
*/
public class MyJFrame implements ActionListener
{
private Rectangle rect;
private int left;
private int right;
private int screenXX;
private int top;
private int width;
private int height;
private Point point;
private Timer timer = new Timer(10,this);
private int xx,yy;
private boolean isDraging = false;
// private JFrame jFrame = new JFrame();
private JFrame jFrame;
public MyJFrame(JFrame jFrame)
{
super();
this.jFrame = jFrame;
timer.start();
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setAlwaysOnTop(true);
jFrame.setVisible(true);
moveFrame();
}
private void moveFrame()
{
jFrame.addMouseListener(new MouseAdapter()
{
@Override
public void mousePressed(MouseEvent e)
{
isDraging = true;
xx = e.getX();
yy = e.getY();
}
@Override
public void mouseReleased(MouseEvent e)
{
isDraging = false;
}
});
jFrame.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
if(isDraging)
{
int left = jFrame.getLocation().x;
int top = jFrame.getLocation().y;
jFrame.setLocation(left + e.getX() - xx, top + e.getY() - yy);
jFrame.repaint();
}
}
});
}
@Override
public void actionPerformed(ActionEvent e)
{
left = jFrame.getLocationOnScreen().x;
top = jFrame.getLocationOnScreen().y;
width = jFrame.getWidth();
height = jFrame.getHeight();
screenXX = java.awt.Toolkit.getDefaultToolkit().getScreenSize().width;
right = screenXX - left - width;
rect = new Rectangle(0,0,width,height);
point = jFrame.getMousePosition();
if(left < 0 && isPtlnRect(rect,point))
{
jFrame.setLocation(0, top);
}
else if(left > -5 && left < 5 && !(isPtlnRect(rect,point)))
{
jFrame.setLocation(left - width + 1, top);
}
else if(top < 0 && left < 0 && isPtlnRect(rect,point))
{
jFrame.setLocation(0, 0);
}
else if((top > -5 && top < 5) && (left >-5 && left < 5)
&& !(isPtlnRect(rect,point)))
{
jFrame.setLocation(left - width + 1, 1);
}
else if((top < 0) && isPtlnRect(rect,point))
{
jFrame.setLocation(left, 0);
}
else if(top > -5 && top < 5 && !(isPtlnRect(rect,point)))
{
jFrame.setLocation(left, 1 - height);
}
else if(right < 0 && isPtlnRect(rect,point))
{
jFrame.setLocation(screenXX - width + 1, top);
}
else if(right > -5 && right < 5 && !(isPtlnRect(rect,point)))
{
jFrame.setLocation(screenXX - 1, top);
}
else if(right < 0 && top < 0 && isPtlnRect(rect,point))
{
jFrame.setLocation(screenXX - width + 1, 0);
}
else if((right > -5 && right < 5) && (top > -5 && top < 5)
&& !(isPtlnRect(rect,point)))
{
jFrame.setLocation(screenXX - 1, 1);
}
}
private boolean isPtlnRect(Rectangle rect2, Point point2)
{
if(rect != null )
{
int x0 = rect.x;
int y0 = rect.y;
int x1 = rect.width;
int y1 = rect.height;
int x = 1024;
int y = 768;
if(point2 != null)
{
x = point2.x;
y = point2.y;
}
return x >= x0 && x < x1 && y >= y0 && y < y1;
}
return false;
}
}
package com.szboc.ui;
import java.awt.Point;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import javax.swing.JFrame;
import javax.swing.Timer;
/**
* 实现窗体靠显示器边隐藏的类
* 窗体在屏幕边缘隐藏
* @author formssi
*
*/
public class MyJFrame implements ActionListener
{
private Rectangle rect;
private int left;
private int right;
private int screenXX;
private int top;
private int width;
private int height;
private Point point;
private Timer timer = new Timer(10,this);
private int xx,yy;
private boolean isDraging = false;
// private JFrame jFrame = new JFrame();
private JFrame jFrame;
public MyJFrame(JFrame jFrame)
{
super();
this.jFrame = jFrame;
timer.start();
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jFrame.setAlwaysOnTop(true);
jFrame.setVisible(true);
moveFrame();
}
private void moveFrame()
{
jFrame.addMouseListener(new MouseAdapter()
{
@Override
public void mousePressed(MouseEvent e)
{
isDraging = true;
xx = e.getX();
yy = e.getY();
}
@Override
public void mouseReleased(MouseEvent e)
{
isDraging = false;
}
});
jFrame.addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
if(isDraging)
{
int left = jFrame.getLocation().x;
int top = jFrame.getLocation().y;
jFrame.setLocation(left + e.getX() - xx, top + e.getY() - yy);
jFrame.repaint();
}
}
});
}
@Override
public void actionPerformed(ActionEvent e)
{
left = jFrame.getLocationOnScreen().x;
top = jFrame.getLocationOnScreen().y;
width = jFrame.getWidth();
height = jFrame.getHeight();
screenXX = java.awt.Toolkit.getDefaultToolkit().getScreenSize().width;
right = screenXX - left - width;
rect = new Rectangle(0,0,width,height);
point = jFrame.getMousePosition();
if(left < 0 && isPtlnRect(rect,point))
{
jFrame.setLocation(0, top);
}
else if(left > -5 && left < 5 && !(isPtlnRect(rect,point)))
{
jFrame.setLocation(left - width + 1, top);
}
else if(top < 0 && left < 0 && isPtlnRect(rect,point))
{
jFrame.setLocation(0, 0);
}
else if((top > -5 && top < 5) && (left >-5 && left < 5)
&& !(isPtlnRect(rect,point)))
{
jFrame.setLocation(left - width + 1, 1);
}
else if((top < 0) && isPtlnRect(rect,point))
{
jFrame.setLocation(left, 0);
}
else if(top > -5 && top < 5 && !(isPtlnRect(rect,point)))
{
jFrame.setLocation(left, 1 - height);
}
else if(right < 0 && isPtlnRect(rect,point))
{
jFrame.setLocation(screenXX - width + 1, top);
}
else if(right > -5 && right < 5 && !(isPtlnRect(rect,point)))
{
jFrame.setLocation(screenXX - 1, top);
}
else if(right < 0 && top < 0 && isPtlnRect(rect,point))
{
jFrame.setLocation(screenXX - width + 1, 0);
}
else if((right > -5 && right < 5) && (top > -5 && top < 5)
&& !(isPtlnRect(rect,point)))
{
jFrame.setLocation(screenXX - 1, 1);
}
}
private boolean isPtlnRect(Rectangle rect2, Point point2)
{
if(rect != null )
{
int x0 = rect.x;
int y0 = rect.y;
int x1 = rect.width;
int y1 = rect.height;
int x = 1024;
int y = 768;
if(point2 != null)
{
x = point2.x;
y = point2.y;
}
return x >= x0 && x < x1 && y >= y0 && y < y1;
}
return false;
}
}
发表评论
-
启动Tomcat启动不了,报以下错:Error listenerStart解决方法
2016-09-04 15:35 498启动Tomcat启动不了,报以下错: org.apach ... -
java自定义标签库的开发
2016-04-08 17:45 0java自定义标签库的开发 :http://www.360 ... -
sitemesh技术的应用
2016-03-23 13:55 490sitemesh技术的应用 ... -
java爬虫gecco监控来了,不再裸奔
2016-03-21 15:05 0java爬虫gecco监控来了,不再裸奔 爬虫为什么要监控 ... -
Eclipse快捷键 10个最有用的快捷键
2016-03-12 16:28 0Eclipse中10个最有用的快捷键组合 一个Eclip ... -
JAVA 注解的几大作用及使用方法详解
2016-01-13 15:26 0JAVA 注解的几大作用及使用方法详解(2013- ... -
java内存溢出分析
2016-01-12 18:03 412用jmap生产dump文件,win通过任务管理器查看to ... -
java垃圾回收
2016-01-12 13:42 468 -
java内存泄露
2016-01-12 10:19 0用Eclipse Memory Analyzer查找内存泄露: ... -
计算机网络
2016-01-11 17:12 0计算机网络体系结构:http://henu-zyy.iteye ... -
spring MVC
2016-01-11 15:59 0国际化、本地化及Spring MVC 的设计:http://c ... -
服务器缓存技术
2016-01-11 11:45 0缓存使用与设计系列文章--目录:http://carlosfu ... -
java JFrame关闭窗口最大化功能
2015-06-18 10:05 2083如是JFrame框架,直接设置: JFrame jf = ne ... -
一些JAVA代码功能的相关链接
2015-06-18 09:04 0spring集成quartz任务调度: http://aton ... -
jsp页面静态化例子
2015-06-17 11:20 728连接:http://konglx.iteye.com/blog ... -
如何在JAVA程序中注册热键
2015-06-08 17:37 633http://walsece.iteye.com/blog/1 ... -
DB2锁表信息
2015-06-01 18:24 489查看数据库锁表信息 ----查询数据库锁表信息 db2 &qu ... -
转:apache安装后no service install解决办法
2015-05-31 17:01 545以下是解决步骤: 1、找到 apache2 目录下的 ... -
在 WebSphere JDBC Adapter 中如何避免死锁和锁超时
2015-05-30 15:40 632在 WebSphere JDBC Adapter 中 ... -
WAS 节点不同步解决办法一
2015-05-26 20:29 1513WAS 节点不同步解决办法一 博客分类: 应用服务器 ...
相关推荐
在提供的压缩包文件中,可能包含了一些示例代码或者资源文件,如图片、字体等,这些都可以帮助你进一步实现自定义的`JFrame`窗体。记得查看源代码,学习并理解其中的实现细节,以便在自己的项目中应用这些技术。
然而,在某些情况下,我们可能需要去掉JFrame上的最大化、最小化和关闭按钮,以实现自定义的窗体样式。本文将介绍如何去掉JFrame上的最大化、最小化和关闭按钮,并实现自定义的窗体样式。 去掉JFrame上的最大化、...
java开发可安装程序exe的JFrame弹窗体汇总整理。。。。
在这个项目中,"AmsSwing"可能是项目的源代码文件夹,包含了实现窗体抓取功能的类和方法。这些源码可能包括了组件遍历、事件监听、数据提取等模块,对于学习和理解Swing控件抓取有很好的参考价值。 总的来说,这个...
综上所述,通过JFrame可以轻松地创建窗体并在窗体中添加各种组件,并且可以通过实现相应的监听器来响应窗体的各种状态变化事件。这对于创建交互式且用户友好的桌面应用程序至关重要。这些知识点对于刚开始学习Java ...
- 实现窗体能贴边隐藏的核心是检测用户拖动窗口时与屏幕边缘的距离。这需要在`MouseMotionListener`的`mouseDragged()`方法中计算窗口的位置,并对比屏幕边界。 3. **事件处理**: - 使用`MouseListener`监听鼠标...
在给定的部分代码中,`showOnScreen`方法接受两个参数:屏幕索引(`screen`)和要显示的窗体(`JFrame frame`)。该方法首先获取当前系统的所有`GraphicsDevice`,然后根据传入的屏幕索引选择特定的`GraphicsDevice`...
(1)设置窗体大小和位置 (2)防止编辑框并设置大小和位置 (3)放置JToolBar,并设置好相应的参数 (4)补充完整JToolBar的对应功能程序。 (5)调试程序并进行修改 本项目是基于Java写的记事本应用,操作简单,...
在Java Swing库中,`JFrame`和`JDialog`是两种主要的顶级窗口组件,它们用于构建用户界面。`JFrame`通常用作应用程序的主要窗口,而`JDialog`则用于创建弹出式对话框,可以是模态或非模态的。本教程将深入探讨如何...
本示例将详细介绍如何利用Java实现JFrame透明窗体,帮助开发者创建出视觉效果更佳的应用程序。 首先,我们要知道Java标准库并不直接支持窗口的透明性设置。但是,从Java 6 Update 10开始,Sun Microsystems(后来被...
Java JFrame窗体弹窗是Java Swing库中的一个核心组件,用于创建GUI应用程序的主窗口。在Java中,JFrame是一个顶级容器,它提供了显示其他组件(如按钮、文本框等)的基础框架。JFrame不仅提供了窗口的基本功能,如...
Java Jframe窗体聊天室是一种基于Java Swing库创建的用户界面应用,主要使用JFrame类作为主窗口,为用户提供交互式的聊天环境。这个简易的聊天室项目非常适合Java初学者学习,因为它涵盖了基本的GUI设计、事件处理...
在给定的场景中,我们将探讨如何实现`JFrame`的窗口透明以及添加阴影边框效果。 首先,要实现`JFrame`的透明,我们需要设置`JFrame`的透明度。Java提供了`setOpacity()`方法来调整窗口的透明度。这个方法接受一个...
5. **错误处理**:在实现除法时,需要考虑除以零的情况,这时可以抛出异常或返回一个提示信息,防止程序崩溃。 通过以上步骤,我们可以构建一个基本的计算器应用。这个项目的源代码中,`item` 文件可能包含了`...
公司最近做的一个自动化测试方面的项目 swing窗体控件信息的自动化抓取,生成脚本文件
该点菜系统完全是用java实现,特别适合学习java一段时间,有一定基础的人练习,两周能独立做出来就可以。其中包括IO流实现点菜系统和SQL数据库实现点菜系统,且内部包含文档教程,适用于多数小白。此文件是用eclipse...
在Java编程领域,`JFrame` 是Swing库中的一个核心组件,用于创建窗口应用程序的基础框架。本项目中,`JFrame` 被用来构建一个用户界面,以实现发送邮件的功能。`JFrame` 可以包含各种组件,如按钮、文本框、标签等,...
在Java编程环境中,实现图片在JFrame窗口中的拖放功能是一项常见的需求,特别是在开发桌面应用时。这个功能涉及到了Java的Swing库,图形用户界面(GUI)的设计以及事件处理。下面将详细介绍如何利用Java来实现在...
在本文中,我们将深入探讨如何使用Java的JFrame来实现一个经典的分歧裁决机,也就是我们熟知的“石头,剪子,布”游戏。这个程序允许用户与计算机进行互动,根据用户选择的“石头”,“剪刀”或“布”与计算机随机...
Java JFrame简单聊天程序是基于Java Swing库中的JFrame组件实现的一个基本交互式应用程序,它允许用户之间进行实时的文本通信。在Java编程中,JFrame是窗口类的基础,用于创建带有菜单栏、组件和布局的主窗口。在这...