Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1698
  • Last Modified:

windowStateChanged(WindowEvent e) function doesn't work!!

i have a problem, windowStateChanged(WindowEvent e) simply doesn't get invoked when i resize my window or click on maximize button!!
all the other functions work fine, like windowOnClose, windowIconified...etc. i can't understand what's wrong so it won't invoke.


public void mainImpl() {
    frame = new JFrame(ImageMap.Promoto_Ver);
    frame.getContentPane().setLayout(new BorderLayout());
    frame.getContentPane().add(getDemoPanel(), BorderLayout.CENTER);
    getDemoPanel().setPreferredSize(Toolkit.getDefaultToolkit().getScreenSize());
    getDemoPanel().setLocation(0, 0);
    frame.setDefaultCloseOperation(frame.DISPOSE_ON_CLOSE);
    frame.addWindowListener(new java.awt.event.WindowAdapter() {
     
      public void windowStateChanged(WindowEvent e) {
        msg.showMessageDialog(new Frame(), e.getComponent().getClass().getName() + " --- Resized ");    //this never gets invoked no matter what i do with my window!!!! why?        
    }
      
      public void windowClosing(WindowEvent e) {
        if (Drw_pro.prozessID != 0) {
          if (Drw_pro.spremenjeno) {
            int odg = msg.showConfirmDialog(new Frame(),
                                            ImageMap.GetText(132) + " " +
                                            Drw_pro.pro_name + "?",
                                            ImageMap.GetText(63),
                                            msg.YES_NO_CANCEL_OPTION,
                                            msg.QUESTION_MESSAGE, msg.getIcon());
            if (odg == msg.YES_OPTION) {
              try {
                Drw_pro.con_ref.commit();
              }
              catch (Exception ex) {}
            }
            else if (odg == msg.CANCEL_OPTION) {
              //Drw_pro.spremenjeno = false;
              return;
            }
            else if (odg == msg.NO_OPTION) {
              try {
                Drw_pro.con_ref.rollback();
              }
  etc.............etc.............etc

Open in new window

0
spartanac86
Asked:
spartanac86
1 Solution
 
Dejan PažinHead of SW DevelopmentCommented:

windowStateChanged does not listen for resize changes. You need ComponentListener for that, here is a tutorial:

http://java.sun.com/docs/books/tutorial/uiswing/events/componentlistener.html

And here is tutorial for the state listener:

https://www.cs.auckland.ac.nz/references/java/java1.5/tutorial/uiswing/events/windowlistener.html
0
 
spartanac86Author Commented:
i should have only changed ...frame.addWindowListener... to ...frame.addWindowStateListener...
and it would have worked fine for minimizing/maximizing, but for resizing i think i'll need to use component listener.
Class Window inherits Component, right?
0

Featured Post

[Webinar] Database Backup and Recovery

Does your company store data on premises, off site, in the cloud, or a combination of these? If you answered “yes”, you need a data backup recovery plan that fits each and every platform. Watch now as as Percona teaches us how to build agile data backup recovery plan.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now