当前位置: 首页 > 知识库问答 >
问题:

如何在JavaSwing中将JFrame放入现有的JGroup中?

范鸿
2023-03-14

你可以在截图中看到,有一个JPanel分为两个区域,左区和右区。左侧区域有许多文本链接。当我单击SLA Criteria链接时,它将弹出SLA Criteria窗口。弹出窗口是JFrame对象。

现在,我试图将弹出窗口放在JPanel的右侧区域,这意味着不再有弹出窗口,即当我单击SLA标准链接时,其内容将显示在JPanel的右侧区域。JPanel正确区域的现有内容将不再使用。这个概念与java api文档页面中的概念相同:http://docs.oracle.com/javase/6/docs/api。单击左框中的链接,您将获得显示在右框中的内容。

示例插图是这样的:

(注意:它是使用图像编辑器制作和编辑的,这不是工作应用程序的真实截图)

所以,我想知道有没有办法把JFrame放到JGroup中?

我在考虑用JInternalFrame,有可能吗?还是有别的办法?

更新:
代码
http://pastebin.com/tiqRbWP8(VTreePanel.java,这是左边的面板

共有3个答案

寿元白
2023-03-14

我浏览了源代码,我看到AWindow.java有内部面板(APanel.java)来保存窗口的内容,它还有一个公共方法来返回内容面板对象(getAPanel())。有了这个,我可以用它把窗口的内容放到其他容器中。

最后,我决定在VTreePanel的右边区域使用JTabbedPane来显示弹出窗口的内容。

柴俊捷
2023-03-14

不,您不想“将JFrame放入JBoard”,您上面的插图也没有演示这一点。相反,它在另一个窗口之上(而不是内部)显示一个从属窗口。如果您绝对需要显示一个新的从属窗口,我建议您创建并显示一个JDialog。教程将解释如何做到这一点,或者如果您在尝试代码后陷入困境,我们将帮助您解决这个问题。

编辑1<br>您的状态:

我需要从弹出窗口样式转换为jpanel内容样式。这就像java api文档页面样式:docs.oracle.com/javase/6/docs/api 当您单击左框中的文本时,它不会显示任何弹出窗口,对吗?内容直接显示在右框。所以这基本上就是我的目标。源代码相当大。如果可能的话,我会尝试粘贴源代码

您需要的是在JList或JTable中简单地实现一个MouseStener,当响应单击时,根据所做的选择获取内容。这与在JPanel中放置JFrame无关,而与编写正确的程序逻辑有关。同样,在模态JDialog中显示它——但这是编写正确的非GUI逻辑的次要步骤。你真是找错地方了。暂时忘掉JFrames,忘掉JPanels,而是专注于在点击时如何提取SLA标准数据。

Edit 2
我想我明白你想做什么了——不使用JFrames和JDialogs,而是使用JPanels,并使用CardLayout交换它们,这将允许你交换视图。

徐杰
2023-03-14

您不是尝试嵌入框架,而是要嵌入框架的内容。

我认为这(至少)有一个问题。

菜单栏由框架的根窗格控制。

创建你自己一个新的JPanel。将其布局设置为 BorderLayout

从框架中获取菜单栏(使用< code>JFrame#getJMenuBar)并添加到新面板的北部位置。

获取帧内容窗格并将其添加到面板的中心位置。

毫无疑问,在尝试这样做时,您将遇到无数其他特定于应用程序的问题。。。

 类似资料:
  • 我想帮助某人。我想创建一个当我单击按钮时会弹出的JGroup,它必须出现在单击按钮的地方,并且不得影响其他组件。这方面的一个例子是JDateChooser,当您单击该按钮时,一个日历就会出现在那里,但当您单击其他任何地方时,该面板就会消失。我想要的是在弹出时将名称列表放在该面板中。它类似于JPopup菜单,只是当您单击其他任何地方时它必须消失。

  • 我一直在关注Oracle的JLayeredPane教程,但它们的布局方式让我感到困惑,也没有理解我想要做什么。 我有一个应用程序,到目前为止还没有层的概念。所有东西都在JFrame中的一个单层中布局。

  • 我有一个名为LoginFrame的类,它必须显示一个包含登录表单的JFrame对象: abstrac类SingleFrameApplication自动为我提供JFrame对象,我在该对象上设置了一些属性(维度和标题)。 然后尝试添加两个JLabel对象,分别显示字符串“username:”和“password:** TNX 安德里亚

  • 我必须插入一个JFrame,另一个类的一个JPanel。我在JFrame中有一个jMenuItem,我希望这样,当我单击jMenuItem,就会出现JPanel。

  • 但是大多数投票解决方案的问题是,它调用的所有项,因此,例如,如果它是一个无休止的RecycerView,当用户到达列表的末尾时,您希望发出网络请求,那么使用该解决方案,会重复调用server,因为它会自动到达的最后一项。 不管怎样,如何设置参数以便我可以将放入中(实际上,我希望将像framelayout或RelationVelayout这样的viewgroup作为nestedscrollview的

  • 问题内容: 如何在Java的JLabel中使用html标签? 问题答案: 要将html放在中,您可以使它看起来像这样