【问题标题】:How to set the previous jframe visible when current jframe is disposed处置当前jframe时如何设置前一个jframe可见
【发布时间】:2013-01-17 18:47:37
【问题描述】:

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

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

我应该放弃这个方法并创建一个新的 jpanel 吗??? jpanel 和 jframe 有类似的能力吗?

【问题讨论】:

标签: java swing jframe visibility


【解决方案1】:

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

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

编辑2:
当您要求更多关于我的最新帖子的信息时,这样的类可能如下所示:

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 一次,但你总是可以通过你的经理类访问它们。在那之后你对他们做什么是你的决定。
我也刚刚使它成为线程安全的,这对于单例来说是至关重要的。

【讨论】:

  • JTabbedPane也可以用来去掉多帧的使用
  • 没错,但这会让用户总是在那些框架后面切换。也许发问者不想这样。
  • 实际上我的一个框架调用了其他 10 个框架(我还没有创建),而其他框架本身调用了其他框架。所以选项卡式窗格是没用的。
  • @chettyharish 所以CardLayout 在这种情况下是最好的选择。如果你想让多个帧同时可用,你也可以使用JDesktopPaneJInternalFrames,但是 MDI 是昨天 imo ;)
  • 但是可以说有没有一种方法可以让您从另一个 jframe 设置 jframe 的可见性?
猜你喜欢
  • 2014-08-02
  • 1970-01-01
  • 2011-03-20
  • 1970-01-01
  • 2013-06-22
  • 1970-01-01
  • 2019-09-28
  • 2014-01-14
  • 1970-01-01
相关资源
最近更新 更多