【问题标题】:How to show scrollbar in Swing's JOptionPane.showOptionDialog?如何在 Swing 的 JOptionPane.showOptionDialog 中显示滚动条?
【发布时间】:2010-12-19 14:45:07
【问题描述】:
在我们的 Swing 应用程序中,我们使用 JOptionPane.showOptionDialog 显示错误消息。但是,有些消息很长,我们希望限制对话框的高度并显示滚动条。我们曾想过在对话框文本中使用 HTML 和 CSS 来限制高度并显示滚动条,但似乎 Swing 的 HTML & CSS is quite limited。
除了开发我们自己的对话框来显示错误消息之外,任何人都可以做到这一点吗?
谢谢
分裂者
【问题讨论】:
标签:
html
css
swing
scrollbar
【解决方案1】:
showOptionDialog 方法的message 参数是Object 类型。 API documentation 指定不同的行为,具体取决于在那里传递的类型。在您的情况下应该有帮助的是传递Component 对象的可能性。这样你就可以传递任何组件,包括JScrollPane,它会在必要时处理滚动条。因此,如果您的消息是在 String msg 中而不是直接传递它,您应该构造如下内容:new JScrollPane(new JLabel(msg))。
【解决方案2】:
您在JOptionPane 上显示的是Object。虽然您通常使用String,但没有什么能阻止您显示不可编辑的JTextArea(我相信它具有内置的滚动条行为)或包含大JLabel(或类似的东西)的JScrollPane。
您需要在 JScrollPane 上设置 PreferredSize,也许还需要设置 setHorizontalScrollBarPolicy 和 setVerticalScrollBarPolicy。