关于模态对话框阻塞问题。 现在程序中dialog都为模态对话框,他们的parent为一个Jframe1,当我打开着某一dialog时,弹出另一个jFrame2窗口(我的程序是一个聊天软件),这个窗口也被那个模态对话框阻塞,我不明白模态的parent是Jframe1,为什么还会阻塞jFrame2?应该怎么解决呢使jFrame2不受模态dialog影响呢? 谢谢大家 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个在1.6之前的版本里面是没办法的,一个模态对话框肯定会阻塞所有同一个进程内的Frame,在1.6版本中加入了几种不同的阻塞模式,可以实现你的要求,例子:import java.awt.BorderLayout;import java.awt.Dialog.ModalityType;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;public class T { public static void main(String[] args) { final JFrame f = new JFrame(); JButton btn = new JButton("Test"); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JDialog dlg = new JDialog(f, "Test", ModalityType.DOCUMENT_MODAL); dlg.setSize(100, 100); dlg.setLocationRelativeTo(f); dlg.setVisible(true); } }); f.getContentPane().add(btn, BorderLayout.CENTER); f.setSize(200, 200); f.setLocation(100, 100); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); final JFrame f1 = new JFrame(); JButton btn1 = new JButton("Test"); btn1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { JDialog dlg = new JDialog(f1, "Test", ModalityType.DOCUMENT_MODAL); dlg.setSize(100, 100); dlg.setLocationRelativeTo(f1); dlg.setVisible(true); } }); f1.getContentPane().add(btn1, BorderLayout.CENTER); f1.setSize(200, 200); f1.setLocation(400, 100); f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f1.setVisible(true); }} 关于Java7 ActionListener 的问题 两个数组如何高速合并? 路径的问题 请教大虾:java实现Comparable接口问题? JButton 如何启动自动按下? 学J2SE一般看什么书,J2SE就是JAVA吗? 向大虾请教一个问题 各位大哥,给点意见啊?? java线程的notify方法,wait方法 webservice客户端调用服务报错 Java文件操作问题:字节流和字符流有什么区别? iframe自动伸缩代码.代码兼容性问题.教教小弟怎么改...
import java.awt.Dialog.ModalityType;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;public class T {
public static void main(String[] args)
{
final JFrame f = new JFrame();
JButton btn = new JButton("Test");
btn.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JDialog dlg = new JDialog(f, "Test", ModalityType.DOCUMENT_MODAL);
dlg.setSize(100, 100);
dlg.setLocationRelativeTo(f);
dlg.setVisible(true);
}
});
f.getContentPane().add(btn, BorderLayout.CENTER);
f.setSize(200, 200);
f.setLocation(100, 100);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true); final JFrame f1 = new JFrame();
JButton btn1 = new JButton("Test");
btn1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JDialog dlg = new JDialog(f1, "Test", ModalityType.DOCUMENT_MODAL);
dlg.setSize(100, 100);
dlg.setLocationRelativeTo(f1);
dlg.setVisible(true);
}
});
f1.getContentPane().add(btn1, BorderLayout.CENTER);
f1.setSize(200, 200);
f1.setLocation(400, 100);
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setVisible(true);
}
}