MDI代表多文档接口。在MDI应用程序中,打开一个主窗口,并在主窗口中打开多个子窗口。
在MDI应用程序中,我们可以打开多个框架,这些框架将是JInternalFrame类的实例。
我们可以以多种方式组织多个内部框架。 例如,我们可以最大化和最小化它们; 我们可以以平铺的方式并排查看它们,或者我们可以以级联形式查看它们。
以下是我们将在MDI应用程序中使用的四个类:
JInternalFrame类的实例充当在其父窗口的区域内显示的子窗口。
JInternalFrame类的实例充当在其父窗口的区域内显示的子窗口。...
要监听窗口事件(如激活,停用等),我们需要向JInternalFrame添加一个InternalFrameListener,而不是一个用于JFrame的WindowListener。
下面的代码显示了如何使用一个实例JInternalFrame类:
String title = "A Child Window"; Boolean resizable = true; Boolean closable = true; Boolean maximizable = true; Boolean iconifiable = true; JInternalFrame iFrame = new JInternalFrame(title, resizable, closable, maximizable, iconifiable);
使用添加组件到iFrame
iFrame.add(...)
打包eth框架,使其可见
iFrame.pack(); iFrame.setVisible(true);
JDesktopPane用作所有JInternalFrame的容器。它使用空布局管理器。
JDesktopPane desktopPane = new JDesktopPane(); // Add all JInternalFrames to the desktopPane desktopPane.add(iFrame);
我们可以使用其getAllFrames()方法获取添加到JDesktopPane的所有JInternalFrames。
JInternalFrame[] frames = desktopPane.getAllFrames();
我们可以使用其getAllFrames()方法获取添加到JDesktopPane的所有JInternalFrames。...
DefaultDesktopManager实现DesktopManager接口。
桌面管理器有很多有用的方法。 例如,要以编程方式关闭内部框架,请使用其closeFrame()方法。
desktopPane.getDesktopManager().closeFrame(frame1);
以下代码演示了如何开发MDI应用程序。
import java.awt.BorderLayout; import java.awt.Dimension; import javax.swing.JDesktopPane; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JLabel; import javax.swing.SwingUtilities; import javax.swing.UIManager; public class Main extends JFrame { private final JDesktopPane desktopPane = new JDesktopPane(); public Main() { JInternalFrame frame1 = new JInternalFrame("Frame 1", true, true, true, true); JInternalFrame frame2 = new JInternalFrame("Frame 2", true, true, true, true); frame1.getContentPane().add(new JLabel("Frame 1 contents...")); frame1.pack(); frame1.setVisible(true); frame2.getContentPane().add(new JLabel("Frame 2 contents...")); frame2.pack(); frame2.setVisible(true); int x2 = frame1.getX() + frame1.getWidth() + 10; int y2 = frame1.getY(); frame2.setLocation(x2, y2); desktopPane.add(frame1); desktopPane.add(frame2); this.add(desktopPane, BorderLayout.CENTER); this.setMinimumSize(new Dimension(300, 300)); } public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } SwingUtilities.invokeLater(() -> { Main frame = new Main(); frame.pack(); frame.setVisible(true); frame.setExtendedState(frame.MAXIMIZED_BOTH); }); } }
Java Swing教程 -Java Swing菜单以下步骤描述如何为我们的应用程序创建添加菜单的过程。创建一个JMenuBar类的对象,并使用其setJ...
注意:适用版本:mybatis-plus-generator 3.5.1 及其以上版本,对历史版本不兼容!快速入门安装dependencygroupIdcom.baomidou/g...
MyBatis-Plus 条件构造器-AbstractWrappereq(R column, Object val)eq(boolean condition, R column, Object val)等于=例:eq("...
MyBatis-Plus 条件构造器-AbstractWrapperinSql(R column, String inValue)inSql(boolean condition, R column, String inValue)...