没人帮我啊?或者如何用程序实现Frame右上角的X功能?

解决方案 »

  1.   

    没人帮我啊?或者如何用程序实现Frame右上角的X功能?
      

  2.   

    你看看這個program就明了
    import java.awt.*;
    import java.awt.event.*;
    public class Test extends Frame
    {
      public Test()
      {
        setSize(300,300);
        addWindowListener(new java.awt.event.WindowAdapter() {
    // Main part whien you click the "X" call this function
        public void windowClosing(java.awt.event.WindowEvent evt)
        {
         dispose()           
         setVisible(false); // close window
        }    
      }
      public static void main(String[] args)
      { 
        Test t = new Test();
        t.show();
      }
    }
      

  3.   

    joechang(Joe) 正解,干嘛不给分做个按钮,添加鼠标监听,点击后执行dispose();setVisible(false);就是了.
      

  4.   

    主要是释放资源这条不好办,用dispose后依然可以使用该frame对象,郁闷。
      

  5.   

    默认的窗口关闭并没有真正的关闭只是setVisible(false),
    如果要真正关闭就得设置SetDefaultClosingOption()
      

  6.   

    错、错、错释放资源估计只有通过外部代码来控制了
    我现在只想在按钮里触发X事件,不要和我说用dispose,因为X事件可能定义在parent对象里,有很多附加的代码要一起执行的
      

  7.   

    错、错、错释放资源估计只有通过外部代码来控制了
    我现在只想在按钮里触发X事件,不要和我说用dispose,因为X事件可能定义在parent对象里,有很多附加的代码要一起执行的
      

  8.   

    错、错、错释放资源估计只有通过外部代码来控制了
    我现在只想在按钮里触发X事件,不要和我说用dispose,因为X事件可能定义在parent对象里,有很多附加的代码要一起执行的
      

  9.   

    import java.awt.event.*;
    class mywindow extends Frame implements ActionListener
    {   
        mywindow(){
           super("test"); 
           addWindowListener(new closewin());
    /*或:addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){setVisible(false);System.exit(0);}});*/
        }
    }    
    class closewin extends WindowAdapter
        {  System.exit(0);}
      

  10.   

    public MainFrame() {
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);
        this.setDefaultClosingOption("//默认是隐藏,可以改为关闭,或者其他,查一下JDK文档吧");
      }protected void processWindowEvent(WindowEvent e) {
        super.processWindowEvent(e);
        if (e.getID() == WindowEvent.WINDOW_CLOSING) {
          if(JOptionPane.showConfirmDialog(this,"您确定要退出系统吗?","将要退出系统",JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.OK_OPTION)
          {
            this = null;
            System.gc();
            //System.exit(0);
          }
          else
            return;
           // this.restartSys();
        }
      }
      
      void exitMenuItem_actionPerformed(ActionEvent e) {
        if(JOptionPane.showConfirmDialog(this,"您确定要退出系统吗?","将要退出系统",JOptionPane.OK_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE)==JOptionPane.OK_OPTION)
        {
           this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
           this = null;
           System.gc();
           //System.exit(0);
        }
        else
           return;
      }
      

  11.   

    那你就试试这个:import java.io.*;
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;public class Zx1 extends JFrame
    {
          private Container c;
        public Zx1() {
       super("dfasfdsafdsafd");
       c = getContentPane();
       c.setLayout(new FlowLayout());
       // c.addKeyListener(new B());
       setSize(500,200);
       setVisible(true);
        }
      public static void main(String args[])
     {
       Zx1 x = new Zx1();
       x.addWindowListener(new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
          System.exit(1);
        }
      });
     }
     }
      

  12.   

    很簡單
    你一關了就執行
    f=null //f is the frame name
    咁佢就會自動放返d空間
      

  13.   

    明白了
    當你關閉了後執行這個就ok
    f=null// f is the frame name
    加埋我先前比你的program就ok