现在的问题是,如果在电脑的状态栏切换了图标,把当前的JFrame窗口隐藏以后,再换回来,那么父窗口就不显示了,怎么才能让他显示出来呢?就像一个JDialog点了以后,父窗口也会同时出现一样.
问题: 我在public void windowActivated(WindowEvent e) 这个方法中只要添加父容器owner的toFront()方法,整个界面就会闪烁不停.
以下是代码:import javax.swing.JFrame;
import java.awt.Frame;
import java.awt.Window;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Dialog;public class JXFrame extends JFrame
{
private boolean isDeActived = false;
Window owner = null ;
public JXFrame()
{
this(null) ;
}
public JXFrame(Frame owser)
{
super("模式窗口") ;
owner = owser ;
initOwner(owser) ;
}
public void initOwner(final Window parent)
{
if(parent != null)
{
parent.setEnabled(false);
addWindowListener(new WindowAdapter()
{
public void windowOpened(WindowEvent e)
{
parent.setEnabled(false);
}
public void windowClosed(WindowEvent e)
{
parent.setEnabled(true);
parent.removeWindowListener(this);
parent.toFront();
} public void windowActivated(WindowEvent e)
{
}
});
parent.addWindowListener(new WindowAdapter()
{
public void windowActivated(WindowEvent e)
{
if (isShowing())
{
setExtendedState(JFrame.NORMAL);
toFront();
} else
{
parent.removeWindowListener(this);
}
}
});
}
}
}
问题: 我在public void windowActivated(WindowEvent e) 这个方法中只要添加父容器owner的toFront()方法,整个界面就会闪烁不停.
以下是代码:import javax.swing.JFrame;
import java.awt.Frame;
import java.awt.Window;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.Dialog;public class JXFrame extends JFrame
{
private boolean isDeActived = false;
Window owner = null ;
public JXFrame()
{
this(null) ;
}
public JXFrame(Frame owser)
{
super("模式窗口") ;
owner = owser ;
initOwner(owser) ;
}
public void initOwner(final Window parent)
{
if(parent != null)
{
parent.setEnabled(false);
addWindowListener(new WindowAdapter()
{
public void windowOpened(WindowEvent e)
{
parent.setEnabled(false);
}
public void windowClosed(WindowEvent e)
{
parent.setEnabled(true);
parent.removeWindowListener(this);
parent.toFront();
} public void windowActivated(WindowEvent e)
{
}
});
parent.addWindowListener(new WindowAdapter()
{
public void windowActivated(WindowEvent e)
{
if (isShowing())
{
setExtendedState(JFrame.NORMAL);
toFront();
} else
{
parent.removeWindowListener(this);
}
}
});
}
}
}
解决方案 »
- 跪求正则表达式1, 2
- java 的GC是如何辨别“对象不会在被引用的”?
- 怎么动态调整画布大小。
- JDialog 加背景图片
- "==" 对于非基本类型比较的是地址,那么对于基本类型呢?比较的是值还是地址?
- 类A里面的X方法有抛出一个异常,我在类B的方法里面调A的X方法时,有没有办法屏蔽X方法的异常输出?
- 微软的MFC类库是对Windows API函数的封装,Java的JDK中的基础类库是对什么的封装?
- 这段代码在linux上运行一会JVM就崩掉了,哪位大虾能说明白为什么?
- 技术讨论:高速公路收费系统项目用JAVA技术来构建适合吗?
- spring中使用cxf发布webservice服务报错
- google engine app的第一个程序报错
- java socket
就这一个,使用的地方跟使用JDialog一模一样的,parent都是一个JFrame.