在Java中,要實現多文檔界面(Multiple Document Interface, MDI),可以使用JFrame作為主窗口,并在其中添加多個子窗口(通常稱為文檔)。以下是一個簡單的示例,展示了如何使用JFrame實現MDI:
import javax.swing.*;
import java.awt.*;
JFrame的類,例如MDIFrame:public class MDIFrame extends JFrame {
public MDIFrame() {
setTitle("MDI Frame");
setSize(800, 600);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
// 創建一個菜單條
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("File");
JMenuItem newItem = new JMenuItem("New");
JMenuItem openItem = new JMenuItem("Open");
JMenuItem closeItem = new JMenuItem("Close");
fileMenu.add(newItem);
fileMenu.add(openItem);
fileMenu.add(closeItem);
menuBar.add(fileMenu);
setJMenuBar(menuBar);
// 添加一個名為"Document 1"的子窗口
JInternalFrame document1 = new JInternalFrame("Document 1");
document1.setSize(400, 300);
document1.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
add(document1);
// 添加一個名為"Document 2"的子窗口
JInternalFrame document2 = new JInternalFrame("Document 2");
document2.setSize(400, 300);
document2.setDefaultCloseOperation(JInternalFrame.DISPOSE_ON_CLOSE);
add(document2);
// 顯示主窗口
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
MDIFrame frame = new MDIFrame();
});
}
}
在這個示例中,我們創建了一個名為MDIFrame的類,它繼承自JFrame。我們在構造函數中設置了主窗口的標題、大小、關閉操作和位置。然后,我們創建了一個菜單欄,并向其中添加了“文件”菜單和其中的“新建”、“打開”和“關閉”菜單項。
接下來,我們創建了兩個名為“Document 1”和“Document 2”的子窗口,并將它們添加到主窗口中。最后,我們使用setVisible(true)方法顯示主窗口。
運行這個程序,你將看到一個包含兩個子窗口的MDI應用程序。你可以根據需要添加更多的子窗口,并根據實際需求為這些窗口添加更多功能和控件。