wrzuciłem na jPanel dwa jInternalFrame, do pokazywania każdego z nich mają służyć buttony pod które podpiąłem funkcję:

    public void showContent(String name) {
        Component[] iframes = Panel.getComponents();
        for (int i=0; i<iframes.length; i++) {
            String frameName = iframes[i].getName();
            if (frameName == null)
                continue;
            if (frameName.indexOf("iFrame_" + name) != -1) {
                iframes[i].setSize(iframes[i].getParent().getSize());
                iframes[i].setVisible(true);
            }
            else if (frameName.indexOf("iFrame_") != -1) {
                iframes[i].setVisible(false);
            }
        }      
    }

problem polega na tym, że przy pierwszym kliknięciu wyświetla się ramka, ale nie jest ustawiany jej rozmiar, dopiero po drugim kliknięciu batona rozmiar dopasowywuje się do rozmiaru Panelu. dlaczego?