在MFrame中写一个静态方法,然后在事件响应函数中调用。
class MFrame
{
public static void close()
{
this.dispose();
}
}
actionPerformed(ActionEvent e)
{
MFrame.close();
}
class MFrame
{
public static void close()
{
this.dispose();
}
}
actionPerformed(ActionEvent e)
{
MFrame.close();
}
{
this.dispose();
}静态方法close()不调用dispose这个非静态的方法的,又不知道怎么办了。
{
... ...
protected JFrame parentFrame = null;
public void setParentFrame(JFrame jFrame)
{
parentFrame = jFrame;
}
private void closeFrame()
{
jFrame.dispose();
jFrame = null;
}
}
{
parentFrame.dispose();
parentFrame = null;
}
这样理解好像跟搂主的有偏差。
搂住的问题是:
class MFrame extends JFrame
{
MFrame.setJMenuBar(new UIMenuBar())
}另外有个UIMenuBar类,想在这个类里关闭MFrame产生的实例。
class MFrame
{
public static void close()
{
System.exit(0);
}
}
actionPerformed(ActionEvent e)
{
MFrame.close();
}
就像这个问题一样。
{
... ...
protected JFrame parentFrame = null;
public void setParentFrame(JFrame jFrame)
{
parentFrame = jFrame;
}
private void closeFrame()
{
parentFrame.dispose();
parentFrame = null;
}
}MFrame mFrame = new MFrame();
UIMenuBar menuBar = new UIMenuBar();
menuBar.setParentFrame(mFrame);
mFrame.setJMenuBar();如果你想通用,就用接口来实现,
public interface Closeable
{
public void close();
}
public class MFrame extends JFrame implements Closeable
{
... ...
public void close()
{
this.dispose();
}
}public class MApplet extends JApplet implements Closeable
{
... ...
public void close()
{
this.destroy();
}
}public UIMenuBar()
{
... ...
protected Closeable parentContainer = null;
public void setParentContainer(Closeable container)
{
parentContainer = container;
}
private void closeFrame()
{
parentContainer.close();
parentContainer = null;
}
}
我不能关闭整个应用程序的,而且在applet也没有这种权限的。阿土仔的方法肯定是没问题的,但是突然之间我又想设计某些单例类,能够在任何时候都能获得某个类的唯一实例,我觉得那样会更简单一点吧。我去试试就知道,谢谢。