【问题标题】:JOptionPane with multiple inputs on different linesJOptionPane 在不同的行上有多个输入
【发布时间】:2012-06-05 17:40:12
【问题描述】:

我想创建一个JOptionPane,允许用户选择要连接的 IP 地址和端口。它应该是这样的结构,

IP 地址:[此处的文本字段]

端口:[此处的文本字段]

取消确定

标签应该左对齐,文本字段也应该左对齐。我无法在此处真正建模情节提要,但基本上文本字段不应错位,即使标签和文本字段之间存在空格。

每个标签和文本字段对应位于单独的行上,并且“取消确定”按钮应向右对齐,位于文本框下方。

有没有办法在代码中做到这一点?

【问题讨论】:

  • @user1329572 我尝试了here 的代码,但这会将所有字段放在同一行中,并且取消和确定按钮未对齐。

标签: java swing layout-manager joptionpane


【解决方案1】:

请参阅this example,其布局似乎相似。

例子

右对齐

右对齐标签中的文本,我认为这样看起来更好,使用这个:

labels.add(new JLabel("User Name", SwingConstants.RIGHT));

对于左对齐文本,将其更改为:

labels.add(new JLabel("User Name"));

改进

这是使用嵌套布局完成的,GridLayout 实例位于 WESTCENTERBorderLayout 中。

使用更强大的布局(如MigLayout)或更现代的J2SE 布局(如BoxLayoutGroupLayout)可能会更好。

GroupLayout 可以提供此 UI 所需的对齐类型,同时不会将 CENTER 字段拉伸到相同的宽度(这也可以在上述嵌套布局中修复,但需要另外 2 个约束面板)。我相信其他两个也可以完成这项工作,但没有那么多经验。

【讨论】:

  • 我一直都知道你有这个例子 :-),只是在我的搜索 +1 中找不到这个
  • @nIcEcOw(轻笑)我能在搜索中找到它的唯一原因是因为它是最近的。
  • @mKorbel 只是想拯救电子星球。这条信息的制作过程中没有任何电子受到伤害(尽管有些电子受到了轻微的不便)。
【解决方案2】:

创建自定义对话框(jdialog)或使用 JOptionPane.showInputDialog,参见本教程:

http://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-28
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多