import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MainClass extends JFrame
{
JButton button;
JDesktopPane desk;
//桌面容器,内部窗体必须放到桌面容器(效果类似WINDOWS桌面)
public MainClass()
{ //主窗体布局设计
super("主窗体");
Container c=this.getContentPane();
button=new JButton("打开");
button.addActionListener(new BtListener());
desk=new JDesktopPane();//新建桌面容器对象
c.add(button,"South");
c.add(desk);//将桌面容器对象添加到窗体内容面板
this.setSize(600,400);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
class BtListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{ //创建内部窗体
SimpleTab demo=SimpleTab.getFrame();
//先删除桌面容器中原有窗体
desk.removeAll();
//添加内部窗体到桌面容器
desk.add(demo);
}
}
public static void main (String[] args)
{
new MainClass();
}
}
import java.awt.*;
import java.awt.event.*;//JTabbedPane事件所在包
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTabbedPane;
import java.sql.*;
/**
* A simple test of JTabbedPane component.
*/
//继承内部窗体
public class SimpleTab extends JInternalFrame
{
JTabbedPane jtp;
JPanel p1;
JLabel lbID,lbName;
JTextField tfID,tfName;
JButton button;
private static SimpleTab frame;
public static SimpleTab getFrame()
{
if(frame==null)
{
frame=new SimpleTab();
}
return frame;
}
private SimpleTab(){
super("商品信息管理",true,true,true,true);
Container contents = getContentPane();
jtp = new JTabbedPane();
jtp.addChangeListener(new JtbListener());
p1=new JPanel();
lbID=new JLabel("商品编号:");
lbName=new JLabel("商品名称:");
tfID=new JTextField(10);
tfName=new JTextField(15);
button=new JButton("添加");
p1.add(lbID);
p1.add(tfID);
p1.add(lbName);
p1.add(tfName);
p1.add(button);
//往JTabbedPane添加选项,包括标题和内容信息
jtp.addTab("添加信息", p1);
jtp.addTab("修改删除信息", new JButton("Second Chance"));
this.addInternalFrameListener(new InterFrameAdapter());
contents.add(jtp);
setSize(600, 200);
setLocation(40,40);//设置内部窗体初始位置
setVisible(true);
}
class InterFrameAdapter extends InternalFrameAdapter
{
public void internalFrameClosing(InternalFrameEvent e)
{
if(frame!=null)
{
frame=null;
}
}
}
//JTabbedPane事件处理器类实现ChangeListener事件监听器接口
class JtbListener implements ChangeListener
{
public void stateChanged(ChangeEvent e)
{
}
}
}