为了账号安全,请及时绑定邮箱和手机立即绑定

设置JDialog的最大大小?

设置JDialog的最大大小?

慕斯709654 2019-08-14 15:30:22
设置JDialog的最大大小?简短的版本:我需要做一些棘手的事情来让JDialog的setMaximumSize()起作用吗?完整版:我有一个JDialog(布局管理器:BorderLayout),它包含一个滚动窗格和底部带有提交按钮的JPanel。滚动窗格包含一个JPanel,它在系统的其他位置动态构建。我想要的是对话框在JPanel周围动态调整大小到一定大小,然后开始增长滚动条。这或多或少是默认情况下发生的事情,除了最大尺寸似乎是我的显示器的大小。我认为这是从java.awt.Component继承的.setMaximumSize()方法,但设置它似乎没有任何效果。设置首选大小确实有效 - 但是无论如何,对话框总是那么大,这实际上并不是我想要的。(如果我在滚动窗格上设置最大/首选大小属性,效果是相同的。)我错过了一些非常明显的东西吗?是否有一些我不知道的古怪的JDialog / BorderLayout / MaximumSize交互?
查看完整描述

3 回答

?
MYYA

TA贡献1868条经验 获得超4个赞

导致JDialog大小的pack()方法依赖于对getPreferredSize()的调用来确定要使用的大小。

如果您是JDialog的子类,则可以通过继承此方法来强制实施最大大小。

例:

@Override public Dimension getPreferredSize() {    
  int maxWidth=500;    
  int maxHeight=300;    
  Dimension dim=super.getPreferredSize();    
  if (dim.width>maxWidth) dim.width=maxWidth;    
  if (dim.height>maxHeight) dim.height=maxHeight;    
  return dim; }


查看完整回答
反对 回复 2019-08-14
  • 3 回答
  • 0 关注
  • 759 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信