package Assis;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MdiApplicationDemo extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
JButton b = new JButton("创建内部窗体 ");
JDesktopPane desktopPane = new JDesktopPane();
int windowCount = 1;
public MdiApplicationDemo() {
// 获取内容窗格容器
Container contentPane = getContentPane();
// 创建功能按钮面板
JPanel pnlControlPane = new JPanel();
pnlControlPane.add(b);
// 设置桌面窗体的布局管理为FlowLayout,缺省为null
desktopPane.setLayout(new FlowLayout());
// 添加事件监听器
b.addActionListener(this);
// 把功能按钮面板和桌面窗体加入到内容窗格容器中
contentPane.add(pnlControlPane, BorderLayout.NORTH);
contentPane.add(desktopPane, BorderLayout.CENTER);
}
// 程序的入口方法
public static void main(String[] args) {
MdiApplicationDemo frame = new MdiApplicationDemo();
// 设置框架窗体的事件监听(关闭窗体事件)
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// 显示框架窗体
frame.setSize(600, 400);
frame.setVisible(true);
}
// 处理创建内部窗体按钮事件
public void actionPerformed(ActionEvent event) {
// 创建一个新的内部窗体
JInternalFrame jif = new JInternalFrame("内部窗体[" + windowCount++ + "]", // title
true, // resizable
true, // closable
true, // maximizable
true); // iconifiable
// 设置内部窗体大小为250×100
jif.setPreferredSize(new Dimension(250, 100));
// 把内部窗体加入到桌面窗体中
desktopPane.add(jif);
// 刷新
desktopPane.revalidate();
jif.setVisible(true);
}
}
分享到:
相关推荐
在Java的Swing库中,创建内部窗体(也称为嵌入式对话框或轻量级对话框)是构建用户界面时的一种常见需求。内部窗体通常被用作主窗体的一部分,提供额外的功能或者信息,而不像模态或非模态对话框那样独立于主应用...
在Java Swing库中,`JInternalFrame`是一个非常重要的组件,它允许我们在一个主窗口(JDesktopPane)内部创建可移动、可最小化、可关闭的子窗口。这些子窗口通常被称为内部帧,它们提供了类似操作系统级别的窗口管理...
3. **创建JInternalFrame**:然后,我们需要创建一个或多个JInternalFrame来表示每个文档窗口。每个JInternalFrame可以包含任何Java组件,如文本编辑器、表格等。 ```java JInternalFrame internalFrame = new ...
2. **JDesktopPane**:`DESKTOP_PANE` 是一个 `JDesktopPane` 对象,它用于展示内部窗体(`JInternalFrame`),在主窗口中可以添加、移动或关闭这些内部窗体,实现多窗口的功能。 3. **主入口点**:`main` 方法是...
在JDK1.7之前的版本中,要实现一个父窗口中点击按钮弹出子窗口的布局,需要先创建一个JDesktopPane,再将JInternalFrame添加到JDesktopPane中,最后将JDesktopPane添加到父窗口(JFrame)中。 实现点击按钮事件弹出...
* JInternalFrame:javax.swing.JInternalFrame 是一个内部窗体组件,用于创建内部窗体。其构造方法包括 JInternalFrame() 和 JInternalFrame(String title)。 * JLayeredPane:javax.swing.JLayeredPane 是一个分层...
内部窗体JInternalFrame、分层窗格JLayeredPane、根窗格JRootPane等是特殊容器。 9. 事件处理 事件处理是图形用户界面设计的重要组成部分,Swing提供了丰富的事件处理机制,通过监听器和事件处理方法来实现事件处理...
在本例中,使用了JDesktopPane作为桌面面板,它可以承载多个内部窗口(JInternalFrame),提供类似Windows操作系统的多文档界面(MDI)效果。 JTabbedPane是Java Swing中的一个控件,用于实现标签页功能。在进销存...
7. **例12.18 内部窗体**:内部窗体(JInternalFrame)是Java桌面应用中的一个特性,它允许在主窗口内嵌入其他窗口,实现更灵活的界面设计。 8. **例12.19 分层面板**:JLayeredPane是Swing中用于创建多层组件的...
- 在Java中,可以利用Swing库的JDesktopPane和JInternalFrame类来创建Tabbed MDI。 4. **设计原则**: - 用户友好:每个子窗口作为独立的标签页,用户可以通过单击标签轻松切换,避免了传统MDI中寻找隐藏窗口的...