【问题标题】:Simple, wrapping red validation message in java swing简单,在 java swing 中包装红色验证消息
【发布时间】:2014-04-30 22:57:26
【问题描述】:

因此,我已经开发 Web 应用程序 10 年了,但在与入门编程课程相关的小型摇摆应用程序上工作有着美好的回忆,我在那之前得到了帮助。我通常喜欢构建 swing/java UI,尤其是使用不错的 UI 构建器。但是,在此期间,我已经非常习惯于在表单上的数据无效时提供清晰的、可变长度和数量的红色错误消息。有时带有图标,有时在字段上带有标记等。在网络世界中很容易做到的非常常见的东西,并且确实很有帮助并提高了可用性。

今天我试图找到一种方法来在我的挥杆表单的顶部或底部显示一个漂亮的错误消息列表,图标和字段标记可以稍后出现,但现在我只想要一个漂亮的可变大小的东西列表需要纠正的,用红色表示。

乍一看,这似乎很容易,但是..

  • JLabel 不换行,因此隐藏了长文本,或者您必须使表单超宽
  • JText 区域有同样的问题,除非您定义了许多列,并且我想填充可用空间。一定数量的列不会调整大小。
  • JTextPane 换行,但据我所知,它不会变红,除非您完全了解复杂的 StyledDocument 位。我不想做任何比更改文本颜色更复杂的事情,所以这看起来有点过头了。

还有一个小问题是推到窗口空间之外,可以调用pack(),但我想只增加表单的高度并将文本换行而不是将对话框更改为消息的宽度(创建如果一条长消息将宽度加倍,则会出现大量紧张的布局和死区)

我也不想为消息区域或整个表单设置滚动条。

这肯定是一个已经发明出来的轮子,那么以摆动形式显示红色(但未格式化)错误消息列表的正确方法是什么?

【问题讨论】:

    标签: java swing validation validationmessage


    【解决方案1】:

    标签不换行,所以长文本被隐藏,或者你必须使 形成超宽

    JText Area 有同样的问题,除非你定义了许多列, 我想填补可用的空间。一定数量的列不会 调整大小。

    • 使用自动换行

    一定数量的列不会调整大小。以及“我也不想有滚动条”

    • 将 JTextArea 放入 JScrollPane,以禁用 JScrollBars,将 JScrollPane 中的 Borders 设置为 null

    JTextPane 换行,但据我所知它不会变红,除非你 深入了解复杂的 StyledDocument 位。我不 想做比改变文本颜色更复杂的事情,所以 这似乎有点矫枉过正。

    • 使用 HighLighter,但发布的关于 StyledDocument 问题的描述中没有明确说明

    【讨论】:

    • 呵呵,我一定是瞎了,我找了一个与文本区域换行有关的属性,但不知何故错过了它。我没有意识到标签中的 HTML 是可能的 我认为您需要 JTextPane 或 JEditorPane 。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-04
    相关资源
    最近更新 更多