求解答?关于事件触发的问题

WSHLF 2012-08-12 03:21:00
窗口中按钮可以触发一个新的窗口,如何做到必须在新窗口关闭的情况下才能再次触发?
...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
chaozhidan 2012-08-13
  • 打赏
  • 举报
回复
我给你简单的说一下;
写适配器啊。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

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


public class Test implements ActionListener{

JFrame frame=new JFrame("测试");

JButton button =new JButton();

public Test(){

frame.add(button);
button.addActionListener(this);

frame.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e) {
button.doClick();
frame.dispose();
}

});

frame.setVisible(true);

}

public void actionPerformed(ActionEvent e) {
if(e.getSource()==button){
JOptionPane.showMessageDialog(null, "按钮执行了!");
}
}

public static void main(String args[]){
new Test();
}
}

还是给你写一个简单的例子吧,看不懂说一声,只是简单的写了一下。你看看
chaozhidan 2012-08-13
  • 打赏
  • 举报
回复
我给你简单的说一下;
写适配器啊。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

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


public class Test implements ActionListener{

JFrame frame=new JFrame("测试");

JButton button =new JButton();

public Test(){

frame.add(button);
button.addActionListener(this);

frame.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e) {
button.doClick();
frame.dispose();
}

});

frame.setVisible(true);

}

public void actionPerformed(ActionEvent e) {
if(e.getSource()==button){
JOptionPane.showMessageDialog(null, "按钮执行了!");
}
}

public static void main(String args[]){
new Test();
}
}

还是给你写一个简单的例子吧,看不懂说一声,只是简单的写了一下。你看看
WSHLF 2012-08-13
  • 打赏
  • 举报
回复
!b是哪来的?
SkyWaterOwen 2012-08-12
  • 打赏
  • 举报
回复
应该可以的吧!

javax.swing.JFrame frame = new javax.swing.JFrame("JFRAME");
frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 300);
javax.swing.JButton button = new javax.swing.JButton("Windows");
Boolean hasWindow = false;
button.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent event) {
if(!b) {
javax.swing.JFrame frame2 = new javax.swing.JFrame("JFRAME2");
frame2.setDefaultCloseOperation(javax.swing.JFrame.DISPOSE_ON_CLOSE);
frame2.setSize(200, 100);
frame2.setVisible(true);
hasWindow = true;
}
else {
javax.swing.JOptionPane.showMessageDialog(frame, "只能打开一个JFrame!", "警告", javax.swing.JOptionPane.WARNING_MESSAGE);
}
}
});
ZZZ5512536 2012-08-12
  • 打赏
  • 举报
回复
你说的不太清楚。。swing还是其他?
extjs里当生成一个新窗口时候,有个属性可以产生遮罩层,除了这个新窗口外,其他的都不能操作。

62,623

社区成员

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

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