Java鼠标双击事件

想用鼠标双击事件,实现双击panel上的图片之后窗体的最大化,publicvoidmouseClicked(MouseEvente){if(e.getClickCount... 想用鼠标双击事件,实现双击panel上的图片之后窗体的最大化,
public void mouseClicked(MouseEvent e) {
if(e.getClickCount() == 2){
this.setExtendedState(JFrame.MAXIMIZED_BOTH);}
else{
this.setExtendedState(JFrame.NORMAL);}}
可是这段写完之后,出现了一个BUG,在双击放大之后如果移动窗体,就回不到初始窗体大小了(我认为是移动窗体之后,系统更新记录了放大的窗体),还有clickcount我理解是鼠标单击的次数,在第二次时最大化,但是不是我想要的结果,我觉得应该用doubleclick来写,哪位大神能帮我修改一下?初学Java,很少用百度提问= =、没分了。。。
展开
 我来答
cxzucc
推荐于2017-11-26 · TA获得超过1317个赞
知道小有建树答主
回答量:1735
采纳率:79%
帮助的人:584万
展开全部

是你的判断有问题吧,没判断当前窗体是否是最大化,不知道理解的对不对。

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class MouseDemo extends JFrame {
private static final long serialVersionUID = 1L;

boolean IS_MAXIMIZED = false;

public MouseDemo() {
super("DoubleClick Demo");
this.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
if (IS_MAXIMIZED) {
setExtendedState(JFrame.NORMAL);
IS_MAXIMIZED = false;
} else {
setExtendedState(JFrame.MAXIMIZED_BOTH);
IS_MAXIMIZED = true;
}
}
}
});

this.setSize(new Dimension(200, 150));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String args[]) {
new MouseDemo().setVisible(true);
}
}
追问
知道什么意思了,对了,你知不知道如何获取窗体初始大小?应该用什么方法?我放大之后就回不去了
追答
初始大小不是你自己设置的么?比如这样:
this.setSize(new Dimension(200, 150));
百度网友3fe8001
2014-04-10 · TA获得超过376个赞
知道小有建树答主
回答量:123
采纳率:100%
帮助的人:75.7万
展开全部
既然你感觉更新了,就在更改之前,把数据记录下来不就行了。然后按照你记录的数据还原窗口。
追问
我主要还是想问,怎么用doubleclick来写双击事件,因为clickcount到头来还是单击事件
追答
首先判断getSource然后判断getCount==2
我知道你说的意思就是存在2此点击时间间距长的话,会给人感觉有时候点1下也能进去。
这就要你自己加个时间判断了。
可以用两次点击鼠标键的时间间隔来判定是否在指定的范围内.其实原理就是这样.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式