import java.awt.*; import javax.swing.*; import javax.swing.event.*; import com.zfqjava.swing.*; import com.zfqjava.swing.cell.*; public class InternalFrameDemo extends JDataGridBean { private JFrame frame; public InternalFrameDemo() { super(); } public void showFrame() { frame = new JFrame(); frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); JDesktopPane desktop = new JDesktopPane(); frame.getContentPane().setLayout(new BorderLayout()); frame.getContentPane().add(desktop, BorderLayout.CENTER); frame.pack(); frame.setSize(400, 300); frame.show(); showInternalFrame(desktop); } public void setDefaultCloseOperation(int operation) { super.setDefaultCloseOperation(operation); if(frame != null) { frame.setDefaultCloseOperation(operation); } } public static void main(String[] args) { final InternalFrameDemo demo = new InternalFrameDemo(); SwingUtilities.invokeLater(new Runnable() { public void run() { demo.showFrame(); demo.setDefaultCloseOperation(JBean.EXIT_ON_CLOSE); demo.getDataGrid().requestFocus(); } }); } }