私は2フレームあります。親と子です。私は次のことをしたい: 親フレームが活性化または非アイコン化されると、子フレームは同じことをする。Javaスイング:1つのフレームから他のイベントを聴いたり、繰り返したりする
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
ViewEventAdapterのコードが追加されました – bunnyjesse112