2013-03-13 89 views

回答

1

假设你正在使用的Java Swing:

JFrame frame = new JFrame(); 
    frame.setTitle("Project Planner"); 
    frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
    frame.addWindowListener(new WindowAdapter() { 
     @Override 
     public void windowClosing(WindowEvent event) { 
      exitProcedure(); 
     } 
    }); 

public void exitProcedure() { 
    frame.dispose(); 
    System.exit(0); 
} 

只需在dispose方法之前添加想要执行的操作即可。

0

在GUI的addWindowListener()方法中尝试执行WindowAdapter

0

为此,您需要将WindowListener注册到关联的JFrame。并覆盖windowClosing()方法。

EDIT
用于随机选择一个字符串出字符串数组的可以使用java.util.Random API。对于实施例在这里是每个JFrame关闭时间的String阵列,并且,一个String随机挑出出这个阵列的并用方法callMeBeforeExit印刷。

import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.SwingUtilities; 
import java.awt.event.WindowEvent; 
import java.awt.event.WindowAdapter; 
import java.awt.BorderLayout; 
import java.util.Random; 
class WorkBeforeClose extends JFrame 
{ 
    String[] strings = { 
          "Hello", 
          "World", 
          "Java", 
          "OOPs" 
         }; 
    public void showGUI() 
    { 
     setTitle("Close me"); 
     getContentPane().add(new JLabel("Close me"),BorderLayout.NORTH); 
     addWindowListener(new WindowAdapter() 
     { 
      @Override 
      public void windowClosing(WindowEvent evt) 
      { 
       callMeBeforeExit(); 
       System.exit(0);//Don't write this line if you don't want your program to exit 
      } 
     }); 
     setSize(200,200); 
     setVisible(true); 
    } 
    private void callMeBeforeExit() 
    { 
     Random random = new Random(); 
     int i = random.nextInt(strings.length - 1);//Defines the Range of numbers to be chosen randomly. 
     System.out.println(strings[i]); 
    } 
    public static void main(String st[]) 
    { 
     SwingUtilities.invokeLater(new Runnable() 
     { 
      public void run() 
      { 
       WorkBeforeClose wbc = new WorkBeforeClose(); 
       wbc.showGUI(); 
      } 
     }); 
    } 
} 
+0

另一个问题是,我想随意采摘一个字符串,然后放入的System.out.println?我该如何做到这一点,谢谢 – 2013-03-13 17:29:49

+0

@JoshuaBaron你有'字符串'存储在'数组'字符串'? – 2013-03-13 17:31:18

+0

不,我不只是在正常的字符串中加入 – 2013-03-13 17:40:06

相关问题