Listening to InternalFrameListener : JInternalFrame « Swing « Java Tutorial






Listening to InternalFrameListener
import java.awt.BorderLayout;

import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;
import javax.swing.event.InternalFrameListener;

class InternalFrameIconifyListener extends InternalFrameAdapter {
  public void internalFrameIconified(InternalFrameEvent internalFrameEvent) {
    JInternalFrame source = (JInternalFrame) internalFrameEvent.getSource();
    System.out.println("Iconified: " + source.getTitle());
  }

  public void internalFrameDeiconified(InternalFrameEvent internalFrameEvent) {
    JInternalFrame source = (JInternalFrame) internalFrameEvent.getSource();
    System.out.println("Deiconified: " + source.getTitle());
  }
}

public class InternalFrameIconifyListenerSample {
  public static void main(final String[] args) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JDesktopPane desktop = new JDesktopPane();
    JInternalFrame internalFrame = new JInternalFrame("Can Do All", true, true, true, true);

    InternalFrameListener internalFrameListener = new InternalFrameIconifyListener();

//     Add listener for iconification events
    internalFrame.addInternalFrameListener(internalFrameListener);

    desktop.add(internalFrame);

    internalFrame.setBounds(25, 25, 200, 100);

    JLabel label = new JLabel(internalFrame.getTitle(), JLabel.CENTER);
    internalFrame.add(label, BorderLayout.CENTER);

    internalFrame.setVisible(true);

    frame.add(desktop, BorderLayout.CENTER);
    frame.setSize(500, 300);
    frame.setVisible(true);
  }
}








14.53.JInternalFrame
14.53.1.Rules of Using Internal Frames
14.53.2.JInternalFrame style: Not Resizable, Not Closable, Not Maximizable, Not IconifiableJInternalFrame style: Not Resizable, Not Closable, Not Maximizable, Not Iconifiable
14.53.3.DragMode: JDesktopPane.OUTLINE_DRAG_MODEDragMode: JDesktopPane.OUTLINE_DRAG_MODE
14.53.4.JInternalFrame: JInternalFrame.isPaletteJInternalFrame: JInternalFrame.isPalette
14.53.5.Listening to InternalFrameListenerListening to InternalFrameListener
14.53.6.JInternalFrame Property Constants
14.53.7.Demonstrating the use of the constants within a PropertyChangeListener.Demonstrating the use of the constants within a PropertyChangeListener.
14.53.8.Customizing a JInternalFrame Look and Feel
14.53.9.Customizing JInternalFrame.DesktopIcon Look and Feel