যদি আমি আপনাকে সঠিকভাবে বুঝতে পারি তবে ব্যবহারকারী বন্ধ বোতামটিতে ক্লিক না করলেও আপনি অ্যাপ্লিকেশনটি বন্ধ করতে চান। আপনার উইন্ডোএভেন্টসটি নিবন্ধ করতে হবে অ্যাডউইন্ডোএলইস্টেনার () অথবা সক্ষমতরসমূহ () এর সাথে যা আপনার প্রয়োজনের জন্য আরও উপযুক্ত হিসাবে সন্ধান করতে পারে।
তারপরে আপনি ইভেন্ট উইন্ডোএভেন্ট () এ কল দিয়ে ইভেন্টটি করতে পারেন। এখানে একটি নমুনা কোড যা একটি জেফ্রেম তৈরি করবে, 5 সেকেন্ড অপেক্ষা করবে এবং ব্যবহারকারীর মিথস্ক্রিয়া ছাড়াই জেফ্রেমটি বন্ধ করবে।
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ClosingFrame extends JFrame implements WindowListener{
public ClosingFrame(){
super("A Frame");
setSize(400, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
this.addWindowListener(this);
Thread t = new Timer();
t.start();
}
public void windowOpened(WindowEvent e){}
public void windowClosing(WindowEvent e){}
public void windowClosed(WindowEvent e){
System.exit(0);
}
public void windowIconified(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowActivated(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
class Timer extends Thread{
int time = 10;
public void run(){
while(time-- > 0){
System.out.println("Still Waiting:" + time);
try{
sleep(500);
}catch(InterruptedException e){}
}
System.out.println("About to close");
ClosingFrame.this.processWindowEvent(
new WindowEvent(
ClosingFrame.this, WindowEvent.WINDOW_CLOSED));
}
}
public static void main(String args[]){
new ClosingFrame();
}
}
আপনি দেখতে পাচ্ছেন, প্রক্রিয়া উইন্ডোএভেন্ট () পদ্ধতিটি উইন্ডো ক্লোজড ইভেন্টটিকে বহিস্কারের কারণ হিসাবে আপনার যদি অ্যাপ্লিকেশনটি বন্ধ করার আগে প্রয়োজন হয় তবে কিছু ক্লিন আপ কোড করার জন্য আপনার একটি সুযোগ রয়েছে।