Login | Register   
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: Client Scripting
Expertise: Beginner
Jul 14, 1999

Window Resize Event

Question:
How can I detect that a window has been resized? I can detect events such as WindowIconified, WindowDeiconified, WindowOpening, WindowClosing, etc., but not the resize event.

Answer:
Figuring out how to detect a window resizing isn't immediately obvious because you might expect the event to be represented by a WindowEvent. In fact, window resizing is just a specific instance of component resizing, which is signalled by a ComponentEvent. The ComponentEvent.COMPONENT_RESIZED identifier indicates that a ComponentEvent is signalling a resize. To receive the event, you must add a ComponentListener to the window. Rather than implementing all the methods required by a ComponentListener, it will suffice to subclass ComponenetAdapter, and override its componentResized() method. The following program shows how to do this, displaying the new dimensions of a window as it is resized.


import java.awt.*;
import java.awt.event.*;

public class ResizeWindow extends Frame {
  Label label;

  public void showSize() {
    label.setText(getWidth() + ", " + getHeight());
  }

  public ResizeWindow() {
    label = new Label();
    label.setAlignment(Label.CENTER);
    add(label, BorderLayout.CENTER);

    addComponentListener(new ComponentAdapter() {
      public void componentResized(ComponentEvent e) {
        ResizeWindow.this.showSize();
      }
    });
  }

  public static final void main(String[] args) {
    Frame frame = new ResizeWindow();
    WindowListener exitListener;

    exitListener = new WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        Window window = e.getWindow();
        window.setVisible(false);
        window.dispose();
        System.exit(0);
      }
    }; 
      
    frame.addWindowListener(exitListener);
    frame.setSize(200, 200);
    frame.setVisible(true);
  }
}
DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap