有不足之处大家指正! >_<
另外还有一篇
"Hibernate配置1对多,插入等问题的demo "
是hibernate一对多,多对一插入的一个事例.
请大家多多指教! >_<
package screencapture;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import javax.imageio.*;
import java.awt.image.*;
/**
* @author jacky.zhu
*
*/
public class CaptureScreen extends JFrame implements ActionListener{
private JButton start,cancel,save;
private BufferedImage get;
/** Creates a new instance of CaptureScreen */
public CaptureScreen() {
doStart();
}
private void doStart(){
try{
Robot ro=new Robot();
Toolkit tk=Toolkit.getDefaultToolkit();
Dimension di=tk.getScreenSize();
Rectangle rec=new Rectangle(0,0,di.width,di.height);
BufferedImage bi=ro.createScreenCapture(rec);
JFrame jf=new JFrame();
jf.getContentPane().add(new Temp(jf,bi,di.width,di.height));
jf.setUndecorated(true);
jf.setSize(di);
jf.setVisible(true);
jf.setAlwaysOnTop(true);
}catch(Exception exe){
exe.printStackTrace();
}
}
private void doSave()throws NullPointerException{
try{
File file = new File("d:/temp/123.jpg");//这里我写死了路径和类型jpg
String about="jpg";
String ext=file.toString().toLowerCase();
System.out.println(ext);
ImageIO.write(get,about,file);
} catch(Exception exe){
exe.printStackTrace();
}
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==start){
doStart();
} else if(ae.getSource()==cancel){
//System.exit(0);
} else if(ae.getSource()==save){
doSave();
}
}
//代码太长我把一部分 分开.下面继续
public static void main(String args[]){
new CaptureScreen();
}
}
enum States{
NORTH_WEST(new Cursor(Cursor.NW_RESIZE_CURSOR)),//表示西北角
NORTH(new Cursor(Cursor.N_RESIZE_CURSOR)),
NORTH_EAST(new Cursor(Cursor.NE_RESIZE_CURSOR)),
EAST(new Cursor(Cursor.E_RESIZE_CURSOR)),
SOUTH_EAST(new Cursor(Cursor.SE_RESIZE_CURSOR)),
SOUTH(new Cursor(Cursor.S_RESIZE_CURSOR)),
SOUTH_WEST(new Cursor(Cursor.SW_RESIZE_CURSOR)),
WEST(new Cursor(Cursor.W_RESIZE_CURSOR)),
MOVE(new Cursor(Cursor.MOVE_CURSOR)),
DEFAULT(new Cursor(Cursor.DEFAULT_CURSOR));
private Cursor cs;
States(Cursor cs){
this.cs=cs;
}
public Cursor getCursor(){
return cs;
}
}
//一个暂时类,用于显示当前的屏幕图像
private class Temp extends JPanel implements MouseListener,MouseMotionListener{
private BufferedImage bi;
private int width,height;
private int startX,startY,endX,endY,tempX,tempY;
private JFrame jf;
private Rectangle select=new Rectangle(0,0,0,0);//表示选中的区域
private Cursor cs;//表示一般情况下的鼠标状态
private States current=States.DEFAULT;// 表示当前的编辑状态
private Rectangle[] rec;//表示八个编辑点的区域
public Temp(JFrame jf,BufferedImage bi,int width,int height){
this.jf=jf;
this.bi=bi;
this.width=width;
this.height=height;
this.addMouseListener(this);
this.addMouseMotionListener(this);
Image icon=Toolkit.getDefaultToolkit().createImage(this.getClass().getResource("icon.png"));
cs=Toolkit.getDefaultToolkit().createCustomCursor(icon,new Point(0,0),"icon");
this.setCursor(cs);
initRecs();
}
private void initRecs(){
rec=new Rectangle[8];
for(int i=0;i<rec.length;i++){
rec[i]=new Rectangle();
}
}
public void paintComponent(Graphics g){
g.drawImage(bi,0,0,width,height,this);
g.setColor(Color.RED);
g.drawLine(startX,startY,endX,startY);
g.drawLine(startX,endY,endX,endY);
g.drawLine(startX,startY,startX,endY);
g.drawLine(endX,startY,endX,endY);
int x=startX<endX?startX:endX;
int y=startY<endY?startY:endY;
select=new Rectangle(x,y,Math.abs(endX-startX),Math.abs(endY-startY));
int x1=(startX+endX)/2;
int y1=(startY+endY)/2;
g.fillRect(x1-2,startY-2,5,5);
g.fillRect(x1-2,endY-2,5,5);
g.fillRect(startX-2,y1-2,5,5);
g.fillRect(endX-2,y1-2,5,5);
g.fillRect(startX-2,startY-2,5,5);
g.fillRect(startX-2,endY-2,5,5);
g.fillRect(endX-2,startY-2,5,5);
g.fillRect(endX-2,endY-2,5,5);
rec[0]=new Rectangle(x-5,y-5,10,10);
rec[1]=new Rectangle(x1-5,y-5,10,10);
rec[2]=new Rectangle((startX>endX?startX:endX)-5,y-5,10,10);
rec[3]=new Rectangle((startX>endX?startX:endX)-5,y1-5,10,10);
rec[4]=new Rectangle((startX>endX?startX:endX)-5,(startY>endY?startY:endY)-5,10,10);
rec[5]=new Rectangle(x1-5,(startY>endY?startY:endY)-5,10,10);
rec[6]=new Rectangle(x-5,(startY>endY?startY:endY)-5,10,10);
rec[7]=new Rectangle(x-5,y1-5,10,10);
}
public void mouseMoved(MouseEvent me){
if(select.contains(me.getPoint())){
this.setCursor(new Cursor(Cursor.MOVE_CURSOR));
current=States.MOVE;
} else{
States[] st=States.values();
for(int i=0;i<rec.length;i++){
if(rec[i].contains(me.getPoint())){
current=st[i];
this.setCursor(st[i].getCursor());
return;
}
}
this.setCursor(cs);
current=States.DEFAULT;
}
}
public void mouseExited(MouseEvent me){
}
public void mouseEntered(MouseEvent me){
}
public void mouseDragged(MouseEvent me){
int x=me.getX();
int y=me.getY();
if(current==States.MOVE){
startX+=(x-tempX);
startY+=(y-tempY);
endX+=(x-tempX);
endY+=(y-tempY);
tempX=x;
tempY=y;
}else if(current==States.EAST){
if(startX>endX){
startX+=(x-tempX);
tempX=x;
} else{
endX+=(x-tempX);
tempX=x;
}
}else if(current==States.NORTH){
if(startY<endY){
startY+=(y-tempY);
tempY=y;
}else{
endY+=(y-tempY);
tempY=y;
}
}else if(current==States.WEST){
if(startX<endX){
startX+=(x-tempX);
tempX=x;
} else{
endX+=(x-tempX);
tempX=x;
}
}else if(current==States.SOUTH){
if(startY>endY){
startY+=(y-tempY);
tempY=y;
}else{
endY+=(y-tempY);
tempY=y;
}
} else if(current==States.NORTH_EAST){
if(startX>endX){
startX+=(x-tempX);
tempX=x;
} else{
endX+=(x-tempX);
tempX=x;
}
if(startY<endY){
startY+=(y-tempY);
tempY=y;
}else{
endY+=(y-tempY);
tempY=y;
}
}else if(current==States.NORTH_WEST){
if(startX<endX){
startX+=(x-tempX);
tempX=x;
} else{
endX+=(x-tempX);
tempX=x;
}
if(startY<endY){
startY+=(y-tempY);
tempY=y;
}else{
endY+=(y-tempY);
tempY=y;
}
}else if(current==States.SOUTH_EAST){
if(startY>endY){
startY+=(y-tempY);
tempY=y;
}else{
endY+=(y-tempY);
tempY=y;
}
if(startX>endX){
startX+=(x-tempX);
tempX=x;
} else{
endX+=(x-tempX);
tempX=x;
}
}else if(current==States.SOUTH_WEST){
if(startY>endY){
startY+=(y-tempY);
tempY=y;
}else{
endY+=(y-tempY);
tempY=y;
}
if(startX<endX){
startX+=(x-tempX);
tempX=x;
} else{
endX+=(x-tempX);
tempX=x;
}
}
else{
startX=tempX;
startY=tempY;
endX=me.getX();
endY=me.getY();
}
this.repaint();
}
public void mousePressed(MouseEvent me){
tempX=me.getX();
tempY=me.getY();
}
public void mouseReleased(MouseEvent me){
System.out.println("mouseReleased");
if(me.isPopupTrigger()){
if(current==States.MOVE){
startX=0;
startY=0;
endX=0;
endY=0;
repaint();
} else{
jf.dispose();
//doSave();
}
}
}
public void mouseClicked(MouseEvent me){
if(me.getClickCount()==2){
//Rectangle rec=new Rectangle(startX,startY,Math.abs(endX-startX),Math.abs(endY-startY));
Point p=me.getPoint();
if(select.contains(p)){
if(select.x+select.width<this.getWidth()&&select.y+select.height<this.getHeight()){
get=bi.getSubimage(select.x,select.y,select.width,select.height);
jf.dispose();
//save.setEnabled(true);
doSave();
}else{
int wid=select.width,het=select.height;
if(select.x+select.width>=this.getWidth()){
wid=this.getWidth()-select.x;
}
if(select.y+select.height>=this.getHeight()){
het=this.getHeight()-select.y;
}
get=bi.getSubimage(select.x,select.y,wid,het);
jf.dispose();
//save.setEnabled(true);
doSave();
}
}
}
}
}
QQ的截图蛮好用的,如果你使用Note发图片的话,只要Ctrl + Alt + A, QQ的截图就出来了,之后可以直接粘贴到邮件里面 ,图片也比较小。 之前不知道Java已经早早支持截图了,原来有个Robot的类;JDK1.6也支持系统托盘...
2019独角兽企业重金招聘Python工程师标准>>> ...
package screencapture;...import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import javax.imageio.*; import java.awt.image.*; /** * @author jacky.zhu ja...
最近用java GUI的swing实现了一个仿QQ截图小工具,实现了最基本的系统热键启动截图,鼠标拖动画出截图区域,或者直接窗口检测,然后保存或者复制到系统剪切板等功能。
发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,...
JAVA面试精选【Java基础第一部分】 JAVA面试精选【Java基础第二部分】 JAVA面试精选【Java基础第三部分】 JAVA面试精选【Java算法与编程一】 JAVA面试精选【Java算法与编程二】 Java高级工程师—面试(1) ...
首先,实现的效果如下图: 这是一个非常经典的例题,几乎在每本程序语言入门书中都会涉及到一部分原理的讲解。我在这里简单地介绍一下代码的实现,让刚学习网络编程的读者更好的理解和实现,二来加深自己的记忆。...
要学会在代码中找乐趣嘛,很有意思的一个小程序。 由于是用Java实现的所以图形显示界面是通过java的GUI实现的。 首先先来介绍一下我们的最终成果。写了四个类文件分别是Constant.java(用于存放数据)、Account....
接下来考虑在计算机中,两个人聊天是怎么实现信息交互的:并不是两个人直接说话,而是中间有一个“中转站”类似,每个人所说的信息,都先经过这个中转站,再由中转站发出去。(计算机采用这种方式可以方便处理信息,...
由于MyBatis属于一种半自动的ORM框架,所以主要的工作就是配置Mapping映射文件,但是由于手写映射文件很容易出错,所以可利用MyBatis生成器自动生成实体类、DAO接口和Mapper映射文件。这样可以省去一部分的功夫,...
用Swing 代码在百度网盘:http://pan.baidu.com/s/1pJjxI4b 具体见https://www.iteye.com/topic/1137293?tdsourcetag=s_pcqq_aiomsg qq自动回复: http://tieba.baidu.com/p/3379996653 ......
Java实现QQ机器人 使用Java拦截QQ消息 + 回复消息…等等(酷Q+java 实现) 需要下载的文件:https://pan.baidu.com/s/13xvYG6VXr9Bj_oJokVbJ9w 提取码:od38 解压后:添加上项目依赖/jar包,启动CQA输入要成为机器人的...
1. Java 内存区域与内存溢出异常 ...字节码解释器工作是就是通过改变这个计数器的值来选取下一条需要执行指令的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成 如果线程正...
Java单点登录 踢出上一次登录 类似qq的"顶号
前几天学习了多线程,最近在学习网络编程,了解了UDP之后又学习了TCP,听一下大佬说,要看看你这两个东西掌握的怎么样,最好的办法就是写一个模拟QQ群聊和私聊,经过这几天的学习,以及不断的完善,终于可以实现了!...
如何纯java实现类似QQ聊天时候的气泡功能,请给位大神指教一下
java聊天程序 推荐java聊天室项目:http://zyshare.cn/resource/detail/15 推荐java相关毕业设计项目整理:https://blog.csdn.net/zwx19921215/article/details/103225211 推荐java最新聊天项目(java仿微信聊天...
请问如何用Java写出类似QQ好友列表那样的效果,求大神指教最好有代码
这部分主要是开源Java EE框架方面的内容,包括Hibernate、MyBatis、Spring、Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题。此外,这篇文章还对企业应用架构、大型网站架构和应用...
import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.ActionEvent; import java.io.*; import javax.swing
设计并实现一个基于TCP协议或者UDP协议的文字聊天软件,具体实现可以实现成类似于腾讯QQ式的,用户端通过登录服务器找到彼此,用户端通信时采用点对点,不用通过服务器转发,通信双方都可以主动发起连接或主动通信。...
这一篇为QQ邮件发送客户端程序设计的下篇,将实现更加完善的功能,不用命令发送方式,类似日常发送邮件,直接编写邮件标题、内容,然后直接发送即可。java实现QQ邮件发送客户端的程序设计,基本实现了QQ邮件发送...
最近需要一个java实现桌面弹窗的小功能,类似于电脑桌面右下角的小广告一样的功能,在csdn上找到一个很好的一个,功能很多,我去除了一点不需要的代码,改了下外观等。 原作者:...
疫情期间,整天闷在家里又不能聚会,大把的空余时间差点让我发霉,后来有个客户发来新年祝贺,情不自禁想起了一件事情,就是他曾经提起过,要是在后台管理系统里面整合个聊天功能该多好啊,有了这个念头,马上行动...
说明 本文提供的代码仅供参考。不建议用于生产环境。...与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。 Auto.js使用JavaScri...
我刚开始学习Java的时候,很长一段时间都有这么个疑惑? Java到底是啥?它能干什么? 自己也看过不少的课程和书,大部分都是从Java的发展史开始...就这样,你Java生涯的第一个代码开始了,意思是“你好,世界!”...
说明 本文提供的代码仅供参考。不建议用于生产环境。...与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。 Auto.js使用JavaScri...
Java swing 仿QQ之实现账号密码输入框 主要思路是自己定义 AccountPanel 和 PasswordPanel 类,继承JPanel,通过 paintComponent(Graphics g) 方法重绘面板,实现目标样式。 先上效果图 ...
小甲鱼老师零基础入门学习Python全套资料百度云(包括小甲鱼零基础入门学习Python全套视频+全套源码+全套PPT课件+全套课后题及Python常用工具包链接、电子书籍等)请往我的资源... 000 愉快的开始 ...
java QQ登录界面