Java GUI中的问题

时间:2010-01-06 09:40:16

标签: java user-interface swing

在阅读我的问题之前,先看一下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中添加新条形时自动调整其大小

2 个答案:

答案 0 :(得分:2)

我会在应用中使用BorderLayout,工具栏位于偏北窗格中。

那个北方窗格我给了一个垂直BoxLayout并将3个工具栏分成3个连续的方框。这应该照顾几何。

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

答案 1 :(得分:0)

另一种选择是使用MigLayout,您可以在其中添加所需数量的“top”组件。通过设置“hidemode”参数,您可以指定不可见组件占用的空间。

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