Identify Frame generating 'closed'-event

I have a jSplittedPane with a jTree on the left, a JDesktopPane on the right.
When i select an item in the tree on the left, an jInternalFrame (application) is added (and displayed) on the jDesktopPane.
I can switch to any item (app) at any moment by selecting other items.
I have added a 'closed'-propertylistener to each frame added on the jDesktopPane.
myFrame.addPropertyChangeListener("closed", new closeInternalFrame()); When i close a frame (app) on the jDesktopPane, the listener is triggered and i can do some actions
     class closeInternalFrame implements PropertyChangeListener {
        public void propertyChange(PropertyChangeEvent e) {
              setCurrentEvent(e);
              deActivateApplication();
        }To identify the jInternalFrame which triggers the closed-event, i do a test on the 'source' of the event
        if ((getCurrentEvent().getSource() instanceof myApp_x.myAppConstructor)){
            this.myApp_x = null;
            removeFromActiveApplicationList("Application_x");
        }This works nicely but... now comes the tricky part:
It does not work when i open 2 jInternalFrames using the same class/constructor...
Question:
Is there any other way to 'identify' the jInternalFrame which triggers the 'closed'-event?
I can 'name' my jInternalFrame but i cannot test it when the event is triggered...
        myFrame.setName("Frame1");

Why aren't you using <tt>InternalFrameListener#windowClosed / windowClosing</tt>?
db

Similar Messages

  • Catch frame's closing event

    Hi,
    I was wondering how to accomplish this...
    How can I catch the closing event, that a user creates by clicking on the X on the top upper right of a jframe?
    I have a cancel button that calls an onCancel method, and I need to also call that onCancel method for that action.
    public void onCancel() {
       // Cancel the operation
    }Any suggestions?
    V

    I'll answer;
    myframe.addWindowListener(new WindowAdapter()
                                    public void windowClosing(WindowEvent we)
                                                     {onCancel();}
                                   });Another way would be to:
    class MyWindowListener extends WindowAdapter()
    private MyClassWithOnCancelMethod mcwocm;
    public MyWindowListener(MyClassWithOnCancelMethod moc)
       mcwocm = moc;
    public void windowClosing(WindowEvent we)
       mcwocm.onCancel();
    }And then, in your previous class:
    MyWindowListener mwl = new MyWindowListener(this);
    myframe.addWindowListener(mwl);Kinda your choice.
    ~David

  • How to stop frame from closing?

    Hi,
    ramka.addWindowListener(new WindowAdapter()
                  public void windowClosing(WindowEvent e)
                      Object [] qqq = {"yes", "no"};
                      int answer = JOptionPane.showOptionDialog(
                                null,
                                 "want to close window?",
                                 JOptionPane.YES_NO_OPTION,
                                  JOptionPane.QUESTION_MESSAGE,
                                  null,
                                 qqq,
                                 qqq[1]);
                      if (answer == JOptionPane.YES_OPTION)
                           // WHAT TO DO TO STOP WINDOW FROM CLOSING?
                  });as you can see above i want to stop frame from closing.
    what should i do in the commented line?
    or maybe somewhere else?
    please help,
    thanks

    Hello friend,
    I've found a solution for your query. I think, you'll get a solution from my codings. I've given you below my codings,plz go through it.Verify it. Reply me about my codings.
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.JOptionPane;
    public class MyFrame extends JFrame{
         JButton jb=new JButton("My Details");
         public MyFrame(){
         JPanel jp=new JPanel();
         jp.add(jb,new FlowLayout(FlowLayout.CENTER));
         add(jp);
         jb.addActionListener(new ActionListener(){
         public void actionPerformed(ActionEvent ae){
                   if(ae.getSource()==jb){
                        String str[]={
                             "Name : Karthikeyan.K",
                             "Email-ID : [email protected]"
                        JOptionPane.showMessageDialog(null, str);
    WindowCloser wc=new WindowCloser();
    addWindowListener(wc);
         class WindowCloser extends WindowAdapter{
              public void windowClosing(WindowEvent we){
                   int res=JOptionPane.showConfirmDialog(null,"Do you want to exit from it?","Confirmation!!!",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.QUESTION_MESSAGE);
                   switch(res){
                        case JOptionPane.YES_OPTION:
                             dispose();
                             System.exit(0);
                             break;
                        case JOptionPane.NO_OPTION:
                             repaint();
                             doOpenFrame();
                             break;
                        case JOptionPane.CANCEL_OPTION:
                             repaint();
                             doOpenFrame();
                             break;
                        case JOptionPane.CLOSED_OPTION:
                             repaint();
                             doOpenFrame();
                             break;
         public static void doOpenFrame(){
              MyFrame mf=new MyFrame();
              mf.pack();
              mf.setSize(400,400);
              mf.setVisible(true);
         public static void main(String ar[]){
         doOpenFrame();
    }

  • Frame window closing

    Hi friends,
    please help me in following situation.
    I have a frame1, where i have a button to open new frame2. this frame 2 opens some other frames.
    When i close main frame1, i want to trigger a event or execute a method on other frames. i tried window closing and window closed events from frame1 or frame2.
    frame2 and frame3 windows r just closing without any events when i close main frame1.
    frame2 and frame3 must extend JFrame not JDialog.
    thanks,

    make in each frame a lille method that calls the next frame (if there is one) and waits until he gets something in return...
    so 1 calls 2, 2 calls 3....
    3 is the last frame and shuts itself down, but first it returns a value to 2.
    then 2 knows it can return a value to 1 and closes itself...
    that's the thing i would do... but never tried it yet so dunno about the speed it goes....
    leme know if I helped you out.
    SeJo

  • Closing a Swing App with Window Closing Event With Dialogs On Close

    A while back I started a thread discussing how to neatly close a Swing app using both the standard window "X" button and a custom action such as a File menu with an Exit menu item. Ultimately, I came to the conclusion that the cleanest solution in many cases is to use a default close operation of JFrame.EXIT_ON_CLOSE and in any custom actions manually fire a WindowEvent with WindowEvent.WINDOW_CLOSING. Using this strategy, both the "X" button and the custom action act in the same manner and can be successfully intercepted by listening for a window closing event if any cleanup is required; furthermore, the cleanup could use dialogs to prompt for user actions without any ill effects.
    I did, however, encounter one oddity that I mentioned in the previous thread. A dialog launched through SwingUtilities.invokeLater in the cleanup method would cause the app to not shutdown. This is somewhat of an academic curiosity as I am not sure you would ever have a rational need to do this, but I thought it would be interesting to explore more fully. Here is a complete example that demonstrates; see what you think:
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.SwingUtilities;
    public class CloseByWindowClosingTest {
         public static void main(String[] args) {
              SwingUtilities.invokeLater(new Runnable() {
                   public void run() {
                        launchGUI();
         private static void launchGUI() {
              final JFrame frame = new JFrame("Close By Window Closing Test");
              JPanel panel = new JPanel();
              panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
              JButton button1 = new JButton("No Dialog Close");
              JButton button2 = new JButton("Dialog On Close");
              JButton button3 = new JButton("Invoke Later Dialog On Close");
              button1.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e) {
                        postWindowClosingEvent(frame);
              button2.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e) {
                        JOptionPane.showMessageDialog(frame, "Test Dialog");
                        postWindowClosingEvent(frame);
              button3.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e) {
                        SwingUtilities.invokeLater(new Runnable() {
                             public void run() {
                                  JOptionPane.showMessageDialog(frame, "Test Dialog");
                        postWindowClosingEvent(frame);
              panel.add(button1);
              panel.add(button2);
              panel.add(button3);
              frame.setContentPane(panel);
              frame.pack();
              frame.setLocationRelativeTo(null);
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              frame.addWindowListener(new WindowAdapter() {
                   @Override
                   public void windowClosing(WindowEvent event) {
                        System.out.println("Received Window Closing Event");
              frame.setVisible(true);
         private static void postWindowClosingEvent(JFrame frame) {
              WindowEvent windowClosingEvent = new WindowEvent(frame, WindowEvent.WINDOW_CLOSING);
              frame.getToolkit().getSystemEventQueue().postEvent(windowClosingEvent);
    }An additional note not in the example -- if in the button 3 scenario you were to put the window closing event posting inside the invoke later, the app then again closes. However, as implemented, what is it that causes button 3 to not result in the application closing?
    Edited by: Skotty on Aug 11, 2009 5:08 PM -- Modified example code -- added the WindowAdapter to the frame as a window listener to show which buttons cause listeners to receive the window closing event.

    I'm not sure I understand why any "cleanup" code would need to use SwingUtilities.invokeLater() to do anything. Assuming this "cleanup method" was called in response to a WindowEvent, it's already being called on the EDT.
    IIRC, my approach to this "problem" was to set the JFrame to DO_NOTHING_ON_CLOSE. I create a "doExit()" method that does any cleanup and exits the application (and possibly allows the user to cancel the app closing, if so desired). Then I create a WindowListener that calls doExit() on windowClosingEvents, and have my "exit action" call doExit() as well. Seems to work fine for me.

  • How do I find the root cause of a NetConnection closed event?

    Hi,
    I am maintaining a large project developed in Flex/Actionscript.
    The application is using tunneling (RTMPT), and we often get Netconnection "closed" events.
    There is no problem with the physical network.
    I think the event may be caused by either a TCP/HTTP/RTMP event, or may be caused by
    some function in the client calling close() on the connection.
    How can I find the root cause of the "closed" event being thrown?
    Thanks,
    David

    Thanks for the information.  It is helpful but it seems there must be a specification of
    what the client side is expecting, independent of any server implementation. 
    When I say client side, I mean the Adobe communication libraries.
    Where is the specification or source code for how the client libraries treat HTTP tunneled requests and responses?
    One question in particular:  How does the client side library treat a
       Connection: Keep-Alive
    versuse
       Connection:close
    HTTP header setting?

  • How can I detect an external trigger and then generate an event or occurance

    I have a PXIe-1065 chassis with a PXIe8030 controller, PXI-6653 timing module, PXI-6542 Digital IO, and PXI-6259 DAQ board, running LabView 8.5. I need to detect a trigger (100 ns TTL pulse) from an external device then start a process on a GPIB device. Is there a way for me to detect this trigger and then generate an event, or an occurance ? Can I do this without polling a device? Can any of this hardware generate an interrupt that LabView can detect?

    My screenshot was only an example how you can approach the issue. I wasnt saying that you should try it with AI....
    Just take a closer look into the DAQmx Events and you will discover something like this:
    hope this helps,
    NorbertMessage Edited by Norbert B on 10-05-2007 02:35 AM
    CEO: What exactly is stopping us from doing this?
    Expert: Geometry
    Marketing Manager: Just ignore it.
    Attachments:
    DAQmxEvent.PNG ‏11 KB

  • Programati​cally change control focus to generate and Event.....​.

    I'm adding some user enhancement (anti-screw-it-up functions) to insure the desired process is executed.
    Primary question:  If I have an event that is handles by a value change in a text control, (event happens when you hit Enter or exit control with mouse) will the event also occur if you exit the control by programatically changing the focus to another control ?
    I'm going to try and set up a temp vi to test this but wanted to see if anyone had tried this and if it works or not.  My other option is to set up multiple event cases but I was hoping to use a single case to handle everything.
    A few details,  I have a test system that tests a product automatically when the product is placed in a cradle and the cradle is moved into position and activates a prox sensor.  At end of test, system waits for prox sensor to de-activate before resetting the system.
    If a unit fails, there are rework options and the unit can be retested.  When it fails, a label prints defining the failure modes and provides a failing serial number.  When the unit is retested, the failing serial number is entered into a text control. I want the re-test sequence (queued up in the Event) to occur when either 1, a failing serial number is entered or two a button is pressed (with mouse)  I'm pretty sure pressing a button would in turn automatically create the text control change event so my button can probably be a dummy button just for appearances.
    Where the hole is if the user enters a failed serial # and doesn't exit the control and then engages a pump to start the test.  I can use a 'Empty Path/String' function but the control will continue to show empty as if nothing was entered until the Enter key is pressed or the mouse is used to exit the control.
    If I can generate the event by changing the focus, then it will insure that if a failing s/n is entered, the re-test sequence occurs and if nothing exists in that field, it performs a first time test.
    A little long winded for sure but any thoughts are appreciated.
    Can't really post any simple code as this feature is in my top level vi and I have a really big app that doesn't warrant uploading.
    Doug
    Doug
    "My only wish is that I am capable of learning each and every day until my last breath."
    Solved!
    Go to Solution.

    Actually, changing the focus alone did not trigger the event but I was able to then utilize the Empty Path/String function to drive a Value(Signaling) node for the control.
    Doug
    "My only wish is that I am capable of learning each and every day until my last breath."
    Attachments:
    Event_Structure_Trials.vi ‏29 KB

  • How to get the closing event (not closed) of Dialog control

    Hi All,
    I have one requirement, that I have to close the Dialog box in an animated way like on clicking of the Dialog close button the popup has to close from top to bottom in a slide effect.
    sap.ui.commons.Dialog
    When I tried closed method of Dialog, it is calling only after dialog box closed but, I need the closing event rather closed event.
    I am putting a UI5 view in Dialog as I need some custom/dynamic content in the dialog.
    Please suggest the solution for this.
    Thanks & Regards,
    Pavan Thirunamala,
    [Moderator Message - Please do not provide contact information like Phone Number etc in the discussion message. It has been removed.]
    Message was edited by: Chandrashekhar Mahajan

    JS Bin - Collaborative JavaScript Debugging&lt;/title&gt; &lt;link rel=&quot;alternate&quot; type=&quot;application/jso…
                sap.ui.getCore().getEventBus().subscribe("sap.ui","__beforePopupClose",
    function(channel, event, params)
      debugger;   
    $(params.domNode).animate({
                      opacity : 1,
                  height : 0

  • NetConnection.Connect.Closed event not triggered in Vista FF3 when in fullscreen mode

    Hello Pals -
    I'm trying to handle the net connection drop and provide some kind of visual cue to user. For this I'm listening to NetConnection.Connect.Closed event and when its triggered, I take further steps. The events are triggered in Vista FF3(window mode)/IE7 but in Vista FF3 full screen mode, the event is not triggered. I forcefully disconnect the network cable to see the NetConnection.Connect.Closed event is triggered.
    I have following piece of code to listen to the event,
    nc = new NetConnection;
    nc.addEventListener(NetStatusEvent.NET_STATUS, onStatus, false, 0, true);
    nc.connect();
    public function onStatus(event:NetStatusEvent):void {
    trace("Status " + event.info.level + " : " + event.info.code);
    The function onStatus should be called whenever there is a status change in net connection. The events are not triggered in Vista FF3 full screen mode. Please share your views/ideas about this here. Thanks in advance. Please let me know incase more information is required.

    The problem decribed as above was caused by a fragile and eventually broken soldered connection on the curcuit board. My local dealer replaced the curcuit board and everything works fine again.
    I still wonder how that happend. I did not try to bend my MacBook and it did not fall of my desk.
    Thanks for reading.

  • Catching window closing events from JFrame

    I'm having problems catching windowClosing() events from a JFrame (just doesn't get to my event listener it would seem!).
    I register and setup a window listener in the constructor of my JFrame class. Prior to this I set the default close operation as DO_NOTHING_ON_CLOSE (as you're suppose to if tyou want to handle window closing events).
    When user clicks on x (window terminate) button (in WIN systems), nothing is dispatched to my event listener. Any ideas?
    Extract from constructor:
    setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
    addWindowListener(new MainWindowListener(this));
    MainWindowListener looks as follows (EDImemConvert extends JFrame):
    class MainWindowListener extends WindowAdapter
    private EDImemConvert f;
    public MainWindowListener(EDImemConvert f)
    this.f = f;
    public void windowClosing(WindowEvent e)
    System.out.println("gets here...");
    f.ReturnResources();
    f.dispose();
    System.exit(0);
    }

    This works for meimport java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Test extends JFrame {
      public Test() {
        addWindowListener(new WindowAdapter() {
          public void windowClosing(WindowEvent we) { System.exit(0); }
        setSize(300,300);
        setVisible(true);
      public static void main(String args[]) { new Test(); }
    }Normally, I just use this line
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    instead of adding a listener. It will clean up everything nicely.

  • Generate an event programically

    Greetings everyone!
    I am trying to create a 'splash' screen that is displayed during httpconnection calls so that the user is informed of the status of the connection (ie connecting, posting, receiving etc). I created a form that implements the runnable method so that i can call httpconnection on a seperate thread. Once the run method is called i clear up all elements in the form, display a message and proceed with the http business.
    The only problem is that the only way i found that i can move on to either a) the next form (if the data return is OK) or b) to the same form that made the call (if there is some error) is by inserting a command in the form after the connection is finalized, thus allowing the user to click his way out of the info screen.
    I was wondering if there is some way for an event to be generated automatically once the connection is finalized, which could be treated by the commandlistener, thus allowing me to avoid any further user interaction.
    thanks in advance!
    best,
    marcos

    thanks for the help guys, i apologize if i did no make myself clear, but i think i can try out the call back method you guys suggested.
    my problem was the following, i would:
    1) generate an event that would call my connection thread
    2) the main thread would then finish
    3) the connection thread would get started
    4) the form would be cleared up and a new message (ie connecting etc) would be appended
    5) the connection thread would finish
    i guess what i forgot to explain is that at this point i was hoping i could 'generate' an event so that i could call back my CommandHandler class (which implements commandlistener). i could probably change the code around in all my forms so that the result from the connection gets treated in the same thread that calls the connection. but by what i understood i could call commandlistener(command c, displayable d) directly, which would result in an event being generated and thus i could stick to my current logic whereby all events get treated in the main thread.
    so the next step would be
    6) i save the result of my connection
    7) i call back my commandhandler
    8) i treat the result of the connection and move on to the next Form by calling display.setDisplay...
    is that correct or did i misinterpret your answer?
    thanks again for the all the help guys, much appreciated!

  • Generate an event from another event

    Hello,
    What im trying to achieve is once a user presses the enter key in a Text Area, it generates another event which is 'pressing a button' without actually physically doing it.
    private JButton btn = new jButton("Submit");
    private void msg_taKeyReleased(java.awt.event.KeyEvent evt) {                                  
        if(evt.getKeyCode() == KeyEvent.VK_ENTER){
           // generate event that clicks button without doing it physically
    } Does anybody know how to do this?
    Thanks

    I would use key binding: [http://java.sun.com/docs/books/tutorial/uiswing/misc/keybinding.html]
    Demo:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class KeyboardBindingExample {
      public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable(){
                public void run() {
                    new KeyboardBindingExample().launch();
        private Action click = new AbstractAction("Submit") {
            public void actionPerformed(ActionEvent evt) {
                System.out.println("click!");
        void launch() {
            JTextArea text = new JTextArea(20,60);
            JButton submit = new JButton(click);
            JPanel south = new JPanel();
            south.add(submit);
            InputMap im = text.getInputMap();
            ActionMap am = text.getActionMap();
            Object key = click.getValue(Action.NAME);
            im.put(KeyStroke.getKeyStroke("ENTER"), key);
            am.put(key, click);
            JFrame f = new JFrame("KeyboardBindingExample");
            Container cp = f.getContentPane();
            cp.add(new JScrollPane(text), BorderLayout.CENTER);
            cp.add(south, BorderLayout.SOUTH);
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.pack();
            f.setLocationRelativeTo(null);
            f.setVisible(true);
    }

  • Generate an Event based on Counter Trigger

    Hello,
    I have the following part that is already working: a counter (used for period measurement) which is triggered by a digital input. After that I'm reading the data and I'm puting them in a Queue. Here I get an error. The Enqueue Element Vi is providing an error. (Error 1, something with a @  character that is illegal). I've notice that if I disable the trigger for the counter I don't get the error. I'm thinking that this is cause by the delay between the moment in which the Enqueue Block tries to enqueue and the moment in which the counter provides something to its ouptut.
    What I want to do is to Generate an Event based on the Counter Trigger Signal and to put all the reading and Enqueue part in an Event Structure. I've tried to do that using an Export Signal - Property Node, but I didn't manage to make it work.
    If you have any solution for this (with or without events -  I just want to get rid of that error) please let me know.
    PS: I have Labview 8.5.1 and the USB-6210.
    Thanks,
    LostInHelp

    Hello Mike,
    Thanks for your replay.
    I've attached two vi files. In one you can find how I've tried to generate an event based on the counter trigger (test.vi).
    The second one (test1.vi) is the vi where I get the queue error. I've deleted from the second vi the part where the data are dequeue and handled.
    Thanks
    LostInHelp
    Attachments:
    test41.vi ‏50 KB
    test110.vi ‏35 KB

  • Default time frame for ICAL events

    Ever since I upgraded to Lion, the default time frame for ICal events has been set to "entire day".  Is there any way to change this?

    Hi,
    If you add a time to the event description, like "meeting  11am tomorrow", it should create an event (with the title "meeting" on tomorrows date at 11am with a duration of 1 hour.
    Best wishes
    John M

Maybe you are looking for

  • Saving Master Slide to Use in Other Projects Captivate 6

    Can anyone tell me how I can save a master slide so that I can use it in other projects?  i've copied and pasted into the Master slide tab in the new project, but it does not allow me to use it as my master slide.  Any suggestions? 

  • Constant hanging began 8/29/11. Worse yesterday AFTER updating Firefox. Is there a known new issue?

    I can no longer use Firefox because it hangs upon every use. I do mean every use. Even clicking to open and read an email or scroll on a page causes it to hang (not responding). It started a few days ago. Became unusable today after updating to the n

  • SLD Best Practices

    Hi From where can I get the best practices related to SLD? My XI system Landscape contains following systems. Sandbox Development Quality Production I am considering following options: Individual SLD for each system. One SLD for Sandbox, Second for D

  • OWB import fails with corrupted repository error

    Hi, Please anyone can suggest a solution for the below problem. I am trying to import set of changes done in development through a Colllection into acceptance. But it keeps failing due to the 'Corrupted Repository' error. The OWB Version is OWB 11.1.

  • Customs Declaration Cancellation

    HI - GTS System is configured to create a Customs Declaration Document automatically upon saving the Billing Document in SAP ECC System         What is the process followed in the below scenarios:         1) Billing Document has to be cancelled out i