JAVA中我我用了3个子窗口,当我把其中一个最大话以后,其他的子窗口也跟着最大化了,怎么设置,我只想把其中一个最大化,其他的子窗口还是原来的大小不变!

解决方案 »

  1.   

    恐怕不是都最大化了,而是被最大化的InternalFrame挡住了吧?
    我下面的程序,创建了3个JInternalFrame,分别设置了不同的Layer。最大化“Sheet 0”之后,“Sheet 1”和“Sheet 2”保持不变。import java.awt.*;
    import javax.swing.*;public class TestDesktop extends JDesktopPane{
        JInternalFrame[] ifrz = new JInternalFrame[3];    public TestDesktop(){
            int x=0, y=0;
            for (int i=0; i<ifrz.length; i++) {
                ifrz[i] = new JInternalFrame(
                    "Sheet " + String.valueOf(i),
                    true,
                    true,
                    true,
                    true);            // 分别设置不同的Layer
                ifrz[i].setLayer(i);            ifrz[i].setBounds(
                    x+=20,
                    y+=20,
                    0, 0);            ifrz[i].setPreferredSize(
                    new Dimension(300, 200));            add(ifrz[i], i);            ifrz[i].pack();
                ifrz[i].setVisible(true);
            }
        }    public static void main(String[] args) {
            JFrame frame = new JFrame();
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        Container container = frame.getContentPane();        TestDesktop desktop = new TestDesktop();        container.add(desktop, BorderLayout.CENTER);        desktop.setPreferredSize(
                new Dimension(400, 300));        frame.pack();
            frame.setVisible(true);
        }}