java - 如何向 JOptionPane.showConfirmDialog(...) 添加滚动条

标签 java swing user-interface joptionpane

我有一个充满 JLabels、JTextFeilds 和 Button 的 JOptionPane,但对话框中的内容太多,以至于它开始变得比我的屏幕还要大。

如何缩小对话框并向 JOptionPane 添加滚动条?

我通过以下方式创建了对话框:创建一个面板,向其中添加所有 myJLabels、JTextFeilds 和 Button,将面板添加到我的框架中,然后:

JOptionPane.showConfirmDialog(frame1, panel1, "Please Enter Character Information", JOptionPane.OK_CANCEL_OPTION);

This is what I want to add a vertical scroll bar to

最佳答案

您已经有了部分答案,不要将 panel1 作为“消息”参数传递,而是先将其包装在 JScrollPane

 JOptionPane.showConfirmDialog(frame1, new JScrollPane(panel1), "Please Enter Character Information", JOptionPane.OK_CANCEL_OPTION);

现在,这可能只能解决部分问题。由于 JScrollPane 使用组件的 preferredSize 作为计算视口(viewport)大小的基础,这可能对您没有帮助。

您可能需要实现 Scrollable 接口(interface),通过 Scrollable#getPreferredScrollableViewportSize 提供更小的 View 矩形。 。然后,JScrollPane 将使用该值作为其自己的 preferredSize 计算的一部分

关于java - 如何向 JOptionPane.showConfirmDialog(...) 添加滚动条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33968242/

相关文章:

java - 是否可以在 HashMap 中进行冒泡排序?

java - 在solr中添加自定义字段类型

java - 用Java创建一个漂亮的 ListView

java - Android - 无法在服务中的计时器内访问 TextView

actionscript-3 - 大型Flash/AS3项目的工作流程

java - 为什么我的文本区域不显示

java - 如何从 utf-8 字符中去除不可见的字符

java - 创建n个任务并在Spring Batch中并行执行它们

java - JMenuItem 和 JMenu 在 JMenu 组件外部使用 - JMenu 子菜单不起作用

Java 和 GUI 选项