package example17_2;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Example17_2{
 public static void main(String args[]){
  Mywindow win=new Mywindow();
  win.validate();
 }
}

class Mywindow extends JFrame{ 
 JButton button1,button2; //按钮
 JTextArea text;    //文本框
 JScrollPane scroll;   //是一个显示纯文本的多行区域
 JInternalFrame interframe; //内容窗格
 JSplitPane splitOne,splitTwo; //用于分隔两个(只能两个)Component
 Mywindow(){
  setSize(500,500);
  setVisible(true);
  
  Container con=getContentPane();  //得到容器
  con.setLayout(new GridLayout(1,2)); //设置布局一行两列
  
  button1=new JButton("button1");
  button2=new JButton("button2");
  
  text=new JTextArea(6,12);  
  scroll=new JScrollPane(text);  //将文本框放入滚动面板中,使其拥有滚动条
  //分隔两个按钮
  splitOne=new JSplitPane(JSplitPane.VERTICAL_SPLIT,true,button1,button2);
  //分隔按钮区和文本框
  splitTwo=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitOne,scroll);
  //JInternalFrame(String title, boolean resizable, boolean closable, boolean maximizable)
  interframe=new JInternalFrame("内部窗体",true,true,true,true);
  //setSize(Dimension d)   调整组件的大小,使其宽度为 d.width,高度为 d.height
  //继承于java.awt.Component
  interframe.setSize(500,300); 
  interframe.setVisible(true);
  
  Container interCon=interframe.getContentPane();
  interCon.setLayout(new FlowLayout());
  interCon.add(splitTwo);
  //可将 JInternalFrame 添加到 JDesktopPane 中。UI 将特定于外观的操作委托给由 JDesktopPane 维护的 DesktopManager 对象
  JDesktopPane desk=new JDesktopPane();
  desk.add(interframe); //将内部窗体放入桌面面板
  
  getContentPane().add(desk); //将面板放入窗体
  // 设置用户在此窗体上发起 "close" 时默认执行的操作
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 }
}