请问swing中内部面板怎么使用啊?
怎么实现在同一个窗体中单击不同按钮在同一个地方弹出不同的内部面板

请给出详细的代码高手们

解决方案 »

  1.   

    -_-!两个不同的按钮show不同的frame或者(javax.swing 
    类 JPopupMenu)内部
      

  2.   

    估计你是想问内部窗体的事儿,内部窗体主要用的是"JInternalFrame"这个类,你可以查下API怎么用.参考代码:
    import javax.swing.*; 
    import java.awt.*; 
    import java.awt.event.*; 
    import javax.swing.UIManager; 
    class Mywindow extends JFrame 

    JButton button1; 
    JButton button2; JInternalFrame interframe1,interframe2; 
    JPanel jpanel; 
    Mywindow() 
    { setVisible(true); 
    //setSize(400,400)见下面的说明! 
    jpanel=(JPanel)this.getContentPane(); 
    jpanel.setLayout(new GridLayout(1,2)); button1=new JButton("我"); 
    button2=new JButton("你"); //------------------------------------------------------ 
    interframe1=new JInternalFrame("内窗体A",true,true,true,true); 
    interframe1.setSize(150,250); 
    interframe1.setVisible(true); // 必须加上此句 !否则内部窗体无法 ! 
    interframe1.getContentPane().add(button1); 
    JDesktopPane desk1=new JDesktopPane(); 
    desk1.add(interframe1); 
    jpanel.add(desk1); 
    //---------------------------------------------------- 
    interframe2=new JInternalFrame("内窗体B",true,true,true,true); 
    interframe2.setSize(150,250); 
    interframe2.setVisible(true); 
    interframe2.getContentPane().add(button2,BorderLayout.CENTER); 
    interframe2.getContentPane().add( new JLabel("你好啊"),BorderLayout.NORTH); 
    JDesktopPane desk2=new JDesktopPane(); 
    desk2.add(interframe2); 
    jpanel.add(desk2); 

    //-------------------------------------------------------- public Dimension getPreferredSize() 

    return new Dimension(500,500); 
    /*注意:这种方式设置窗体大小显示的效果更好! 
    *如果直接这样设置setSize(400,400)大小 ,效果不好 
    * 建议初学者测试! 
    */ 
    } } 
    public class interframe 

    public static void main(String args[]) 
    { Mywindow win=new Mywindow(); 
    win.pack(); 
    // win.setVisible(true); 如果有此句,内部窗体不显示! 
    // win.setSize(new Dimension(400,400)); 
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
    Dimension frameSize = win.getSize(); 
    if (frameSize.height > screenSize.height) 

    frameSize.height = screenSize.height; 

    if (frameSize.width > screenSize.width) 

    frameSize.width = screenSize.width; 

    win.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); 
    win.addWindowListener(new WindowAdapter() 

    public void windowClosing(WindowEvent e) 
    {System.exit(0);} 
    }); 

    }
      

  3.   

    -_-#以前还没用过JInternalFrame这个类,学习
      

  4.   

    用CardLayout来实现 JPanel就行
      

  5.   

    6楼,我看了你的代码,jpanel=(JPanel)this.getContentPane(); 这句我还不太明白,为什么要另用一个jpanel,用以前的jcontenpane不行吗?
    还有你写的好象还是在一个面板的俩个地方显示内部面板,是不是得把GridLayout该成CardLayout
    我是想问在一个jframe 中有俩个jbutton 点击不同的jbutton在jframe中的同一个地方弹出不同的内部窗体