1

我正在开发一个简单的应用程序,它具有:

  • 2 个带标签的文本字段:名称和描述
  • 添加按钮
  • 面板填充有名称/描述标签和单选按钮,用于选择记录并使用它们进行操作(编辑/删除 -> 选择单选按钮时会出现这些按钮)。

我尝试了以下布局组合:

  • 2 个带有 BoxLayout (YAXIS) 的面板,其中包含文本字段及其标签
  • 带有 GridBagLayout 的面板具有 2 个带有文本字段的面板和一个用于添加数据的按钮。
  • 按下按钮后,带有 BoxLayout (YAXIS) 的面板将填充记录
    • 带有 GridBagLayout 的面板,其中包含单选按钮和 2 个带有名称和描述文本字段结果的标签。

这是我来的截图:

在此处输入图像描述

如您所见,有一个问题 - 标签没有自动换行。如果我使用 JTextArea 进行自动换行,则会出现白色背景(setBackground(null)没有帮助)。

我认为这里 GridBagLayout 不是很好的选择,甚至内部面板太多。事实上,这个任务似乎很常见。像这样的应用程序 UI 构建有哪些好的做法?

4

1 回答 1

3

您遇到的问题JLabel很容易处理。因为 JLabels 接受HTML Tags你可以使用这个机制来自动换行你的文本:

label.SetText(String.format("<html><div WIDTH=%d>%s</div><html>", width, text));

对于一般布局,我更喜欢GridbagLayout. 使用 GridbagLayout,您只需要 Layout-Typ。GridBagLayout 灵活且易于使用,适合您的案例。

如果布局变得更复杂,您可能需要堆叠不同的布局,以获得最佳处理。

于 2013-08-18T11:58:04.047 回答