如何在放置当前jframe时设置前一个jframe可见

时间:2013-02-02 15:44:37

标签: java swing jframe visibility

我正在制作一个Java gui项目,它由两个框架组成。

问题在于,当我从第一帧调用第二帧时,我已将其设置为第一帧可见性设置为false。问题是如何使用第二帧中的按钮再次显示第一帧。

我应该抛弃这个方法并创建一个新的jpanel而不是??? jpanel是否具有与jframe类似的功能?

1 个答案:

答案 0 :(得分:4)

考虑使用CardLayout。这样,您可以通过多个UI进行切换,而无需另一个框架。 Here's how to use it.

编辑:正如Guillaume在评论中发表的那样,来自Andrew的this回答也涵盖了如何使用布局。

<强> EDIT2:
正如您要求了解有关我最新帖子的更多信息,以下是这样一个课程的样子:

import javax.swing.JFrame;


public abstract class MyFrameManager {
    static private JFrame   startFrame,
                        anotherFrame,
                        justAnotherFrame;

static public synchronized JFrame getStartFrame()
{
    if(startFrame == null)
    {
        //frame isnt initialized, lets do it
        startFrame = new JFrame();
        startFrame.setSize(42, 42);
        //...
    }

    return startFrame;
}

static public synchronized JFrame getAnotherFrame()
{
    if(anotherFrame == null)
    {
        //same as above, init it
    }

    return anotherFrame;
}

static public synchronized JFrame getJustAnotherFrame()
{
    //same again
    return justAnotherFrame;
}

public static void main(String[] args) {
    //let's test!

    JFrame start = MyFrameManager.getStartFrame();
        start.setVisible(true);

    //want another window
    JFrame another = MyFrameManager.getAnotherFrame();
        another.setVisible(true);

    //oh, doenst want start anymore
    start.setVisible(false);
}
}

这样您只需要实例化每个JFrame一次,但您可以随时通过您的经理类访问它们。之后你用他们做的是你的决定 我也让它成为线程安全的,这对单身人士来说至关重要。