我有一个充满JLabel,JTextFeilds和Buttons的JOptionPane,但是我在对话框中有很多东西,它开始变得比我的屏幕更大。
如何缩小对话框并将滚动条添加到JOptionPane?
我通过创建面板创建了对话框,将所有myJLabels,JTextFeilds和Buttons添加到其中,将面板添加到我的框架,然后:
JOptionPane.showConfirmDialog(frame1, panel1, "Please Enter Character Information", JOptionPane.OK_CANCEL_OPTION);
答案 0 :(得分:3)
您已经有了部分答案,而不是将panel1
作为"消息"参数,首先包裹JScrollPane
JOptionPane.showConfirmDialog(frame1, new JScrollPane(panel1), "Please Enter Character Information", JOptionPane.OK_CANCEL_OPTION);
现在,这可能只能解决部分问题。由于JScrollPane
使用组件的preferredSize
作为计算视口大小的基础,因此这可能对您没有帮助。
您可能需要实现Scrollable
界面,通过Scrollable#getPreferredScrollableViewportSize
提供较小的视图矩形。然后,JScrollPane
会将此值用作其自身preferredSize
计算的一部分