Java Swing MDI
Java Swing教程 - Java Swing MDI
MDI代表多文档接口。在MDI应用程序中,打开一个主窗口,并在主窗口中打开多个子窗口。
在MDI应用程序中,我们可以打开多个框架,这些框架将是JInternalFrame类的实例。
我们可以以多种方式组织多个内部框架。 例如,我们可以最大化和最小化它们; 我们可以以平铺的方式并排查看它们,或者我们可以以级联形式查看它们。
以下是我们将在MDI应用程序中使用的四个类:
- JInternalFrame
- JDesktopPane
- DesktopManager
- JFrame
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;
/*from w w w. j av a2 s. co m*/
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);
});
}
}

免费 AI IDE


更多建议: