我有2帧:父和孩子。我想要执行以下操作: 当父框架被激活或取消消息时,子框架执行相同的操作。Java swing:从另一帧中收听和重复的事件
private void attachListeners()
{
if (parentFrame != null)
{
parentFrame.addComponentListener(this);
parentFrame.addWindowListener(new ViewEventAdapter(this));
}
@Override
public void viewActivated()
{
// show it when the parent is activated
if (!childFrame.isVisible())
{
childFrame.setVisible(true);
parentFrame.toFront();
}
}
但是这会导致无限循环的闪烁。如果我删除toFront(),我不能将焦点切换到父框架。我只需要以某种方式正确地切换焦点。
监听器代码:
public class ViewEventAdapter implements WindowListener, InternalFrameListener
{
private MyViewListener listener = null;
public ViewEventAdapter(MiaViewListener inListener)
{
listener = inListener;
}
@Override
public void windowActivated(WindowEvent inE)
{
listener.viewActivated();
}
@Override
public void windowClosed(WindowEvent inE)
{
listener.viewClosed();
}
@Override
public void windowClosing(WindowEvent inE)
{
listener.viewClosing();
}
@Override
public void windowDeactivated(WindowEvent inE)
{
listener.viewDeactivated();
}
@Override
public void windowDeiconified(WindowEvent inE)
{
listener.viewDeiconified();
}
@Override
public void windowIconified(WindowEvent inE)
{
listener.viewIconified();
}
@Override
public void windowOpened(WindowEvent inE)
{
listener.viewOpened();
}
@Override
public void internalFrameActivated(InternalFrameEvent inE)
{
listener.viewActivated();
}
@Override
public void internalFrameClosed(InternalFrameEvent inE)
{
listener.viewClosed();
}
@Override
public void internalFrameClosing(InternalFrameEvent inE)
{
listener.viewClosing();
}
@Override
public void internalFrameDeactivated(InternalFrameEvent inE)
{
listener.viewDeactivated();
}
@Override
public void internalFrameDeiconified(InternalFrameEvent inE)
{
listener.viewDeiconified();
}
@Override
public void internalFrameIconified(InternalFrameEvent inE)
{
listener.viewIconified();
}
@Override
public void internalFrameOpened(InternalFrameEvent inE)
{
listener.viewOpened();
}
}
public interface MyViewListener
{
/**
* Called when a view is activated
*/
public void viewActivated();
/**
* Called when a view is closed
*/
public void viewClosed();
/**
* Called when a view is closing
*/
public void viewClosing();
/**
* Called when a view is deactivated
*/
public void viewDeactivated();
/**
* Called when a view is deiconified
*/
public void viewDeiconified();
/**
* Called when a view is iconified
*/
public void viewIconified();
/**
* Called when a view is opened
*/
public void viewOpened();
}
请帮助。提前致谢。
这段代码甚至没有编译:)你可以发布'ViewEventAdapter'代码吗? – GETah 2011-12-21 19:47:17
为ViewEventAdapter添加代码 – bunnyjesse112 2011-12-22 07:42:55