【问题标题】:Problem in Java GUIJava GUI 中的问题
【发布时间】:2010-01-07 02:31:45
【问题描述】:

在阅读我的问题之前,先看看这个GUI Diagram

顶部有如下三个栏:

  • 具有“图片视图”、“文本视图”等按钮的按钮。
  • 第二个按钮有“流程”、“组织”等。
  • 第三个具有“应用到进程”等按钮。

在那之后有两个信息栏。

然后是显示图表的画布窗口。​​

现在,我想要一个与此类似的 GUI,具有以下功能(相对于上图):

  • 起初,只出现第一个条形图,在其下方出现一个没有图表的白色空白画布,遍布整个 GUI。

  • 当用户点击“图片视图”按钮时,第二个栏会出现在第一个栏的下方,然后在剩余空间中没有图表的同一画布

  • 当用户单击第二个栏上的“应用程序”按钮时,第三个栏出现在第二个栏下方,然后相同的空白画布在 GUI 中的剩余空间上展开。

我曾尝试通过首先拥有一个带有 BorderLayout 的“主面板”来实现它。之后如下图所示:

mainPanel(Border Layout)
|
|--topPanel (at NORTH of the mainPanel's Border Layout)
|
|
|--centerPanel (at CENTER of the mainPanel's Border Layout)

topPanel - 包含所有条形图(应在用户单击按钮时动态添加条形图)

centerPanel - 包含画布并在 topPanel 中添加新条时自动调整其大小

【问题讨论】:

  • 你好像没有问过问题。

标签: java user-interface swing


【解决方案1】:

我会为应用程序使用BorderLayout,工具栏位于偏北的窗格中。

那个北窗格我会给出一个垂直的BoxLayout 并将 3 个工具栏放入 3 个连续的框中。这应该照顾几何。

我不确定使工具栏不可见是否会导致它不占用空间,但这是最简单的。或者,您可以从北窗格动态地add()/remove() 工具栏。

【讨论】:

  • 没有。工具栏的数量不固定。这取决于数据库中的数据,所以我该如何实现。我希望根据用户的需要动态地将尽可能多的工具栏添加到 GUI。
  • 所以add() 任意数量。 BoxLayout 这样就很容易了。
【解决方案2】:

另一种选择是使用MigLayout,您可以在“顶部”添加任意数量的组件。通过设置“hidemode”参数,您可以指定不可见组件将如何占用空间。

一般来说,MigLayout 对于几乎任何任务都更加灵活,可以用来代替任何标准布局或布局组合

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多