用MousAdapter处理鼠标事件!!!!!!!

hanglong1013 2010-04-02 03:41:45
用MousAdapter处理鼠标事件时,假如一个Buttton添加了一个鼠标事件监听器 moseClicked(),当点击Button时,会创建一个窗口Frame!

问题:当我双击时怎么会跳出两个窗口出来,但是我想的时不管怎么点击Button时,只会出来一个Frame,请高手指教一下!!!
...全文
165 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sirtener 2010-04-06
  • 打赏
  • 举报
回复
不要每次都new个实例,操作原有的实例,用单例模式来做吧
py330316117 2010-04-06
  • 打赏
  • 举报
回复
设个标志不就完了,count计数为一时就不再创建frame(可以用if语句进行判断)
swing_false 2010-04-06
  • 打赏
  • 举报
回复
定义一个Boolean值 初始为TRUE 在每次new frame之前首先判断下如果是FALSE就不new了 第一次new的时候将值设为FALSE 我想这样应该可以了
kai27ks 2010-04-06
  • 打赏
  • 举报
回复
你不要在鼠标单击事件里面去new,把窗体对象做成一个类局部变量,一开始就new,然后去判断他的visalbe。和楼上的思路一样的
woshayawo 2010-04-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 qybao 的回复:]
引用 3 楼 hanglong1013 的回复:
我的意思时不管是单击还时双击,只弹出一个Frame出来!

你应该只有一个instance,而不是每次都new一个
然后在Button事件只是把该instance显示setVisiable(true)
[/Quote]


这个思路太棒了!!
qybao 2010-04-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hanglong1013 的回复:]
我的意思时不管是单击还时双击,只弹出一个Frame出来!
[/Quote]
你应该只有一个instance,而不是每次都new一个
然后在Button事件只是把该instance显示setVisiable(true)
coffee8888888888 2010-04-05
  • 打赏
  • 举报
回复
package com.shan.test;

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;

public class ButtonTest extends JFrame {
JFrame frame = new JFrame();

ButtonTest() {
JButton button = new JButton("弹出对话框");
button.addMouseListener(new MouseAdapter() {

@Override
public void mouseClicked(MouseEvent e) {
if (!frame.isVisible()) {
frame.setSize(800,600);
frame.setVisible(true);
}
}

});
this.getContentPane().add(button);
}

public static void main(String[] args) {
ButtonTest test=new ButtonTest();
test.setSize(300,400);
test.setVisible(true);
}
}
canoe982 2010-04-02
  • 打赏
  • 举报
回复
使用singleton设计模式吧。
hanglong1013 2010-04-02
  • 打赏
  • 举报
回复
我的意思时不管是单击还时双击,只弹出一个Frame出来!
diggywang 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 hanglong1013 的回复:]
我想的时不管怎么点击Button时,只会出来一个Frame,请高手指教一下!!!
[/Quote]
你这个要求太诡异了。楼上说的“e.getClickCount()==1”也不行,楼主的“不管怎么点击”是什么意思?我点一下,隔10秒钟后再点一下?

给个我理解的demo:

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;

public class OnlyOneFrame extends JFrame {

private JFrame f = null;

public OnlyOneFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton("Click me");
button.setToolTipText("this will show only one frame");
setTitle("OnlyOneFrame Test");
getContentPane().add(button);

setLocation(300, 200);
// button.addActionListener(new ActionListener() {
//
// @Override
// public void actionPerformed(ActionEvent e) {
// showOnlyOneFrame();
// }
// });
button.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
showOnlyOneFrame();
}
});
pack();
}

private void showOnlyOneFrame() {
if(f==null){
f = new JFrame();
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setTitle("OnlyOneFrame");
JLabel label = new JLabel("Hello Boy!");
f.getContentPane().add(label);
f.pack();
f.setLocation(200, 200);
}
f.setVisible(true);
}

public static void main(String[] hello) {
SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {
new OnlyOneFrame().setVisible(true);
}
});
}

}
ZRBRZB 2010-04-02
  • 打赏
  • 举报
回复
e.getClickCount()==1
内容概要:本文围绕分布式电源接入对配电网的影响展开研究,利用Matlab进行建模仿真与代码实现,系统分析了分布式电源(如光伏、风电等)接入后对配电网在电能质量、潮流分布、电压稳定性、保护配置等方面的影响。研究涵盖了多种分布式电源类型与不同渗透率场景,通过构建典型的配电网模型,仿真其在正常运行及故障条件下的动态响应特性,重点探讨了分布式电源引起的电压越限、反向潮流、短路电流水平变化等问题,并提出了相应的优化调控策略与解决方案。同时,结合主动配电网的有功无功协调优化、鲁棒调度等高级应用,展示了如何借助现代优化算法提升系统接纳能力与运行经济性。; 适合人群:具备电力系统基础知识,熟悉Matlab/Simulink仿真环境,从事新能源接入、配电网规划与运行等相关领域的科研人员、工程师及高校研究生。; 使用场景及目标:①掌握分布式电源接入对配电网关键指标的影响机制;②学习基于Matlab的配电网建模与仿真方法;③理解并实现主动配电网的协调优化调度算法;④为实际工程中分布式电源并网方案设计与问题诊断提供理论支持和技术参考。; 阅读建议:建议读者结合文中提供的Matlab代码,逐步复现仿真案例,深入理解模型构建与算法实现细节,并尝试在不同参数设置或网络结构下进行拓展实验,以增强对系统动态行为的认知与分析能力。

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧