用MousAdapter处理鼠标事件时,假如一个Buttton添加了一个鼠标事件监听器 moseClicked(),当点击Button时,会创建一个窗口Frame!问题:当我双击时怎么会跳出两个窗口出来,但是我想的时不管怎么点击Button时,只会出来一个Frame,请高手指教一下!!!
解决方案 »
- keyPressed和keyTyped有什么区别?
- java有没有传函数指针的相当功能?
- 求助一个java命令的问题
- 请教高手做一个java题
- 简单的问题包含了复杂的东西(请大家指教)
- 在eclipse中创建了一个窗体,如何让他运行并且显示出来??????????
- 请问用JDBC怎么做一对多的关系的主/从表? 怎么OR mapping?
- 朋友帮个忙::在JTree中用model.removeNodeFromParent和model.reload()两个方法为何都没有用??要设置什么或者其它???
- 刚编一个简单网络通讯程序,运行不通过,希望高手指教
- 急问,java的io操作!??
- swing面板加背景的问题
- jar 内部文件
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);
}
});
}}
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);
}
}
然后在Button事件只是把该instance显示setVisiable(true)