首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JPanel不支持setMinimumSize / ComponentListener

JPanel不支持setMinimumSize / ComponentListener
EN

Stack Overflow用户
提问于 2019-03-20 03:15:13
回答 1查看 90关注 0票数 0

我有一个JPanel,它不应该缩小到小于最小大小,但它没有这样做。我知道我应该使用我已经实现但仍然没有用处的ComponentListener。

有人能从编程的角度解释一下出了什么问题吗?

以下是代码的相关部分:

代码语言:javascript
复制
public class ResearchdbView extends JFrame {
    private javax.swing.JMenuBar menuBar;

private ResearchdbView() {
    initComponents();
}

private void initComponents() {     
    mainPanel = new javax.swing.JPanel();
    mainPanel.setSize(new java.awt.Dimension(880, 700));
    mainPanel.setMaximumSize(null);
    mainPanel.setMinimumSize(new java.awt.Dimension(880, 700));
    mainPanel.setPreferredSize(new java.awt.Dimension(880, 700));
    setResizable(true);
    mainPanel.addComponentListener(new java.awt.event.ComponentAdapter() {
        public void componentResized(ComponentEvent ce) {
            mainPanel.setSize((Math.max(880, mainPanel.getWidth())), Math.max(700, mainPanel.getHeight()));
        }
    });

    this.getContentPane().add(mainPanel, BorderLayout.CENTER);      
}}

PS。我已经尝试了类似帖子中的所有解决方案来到达这里。

EN

回答 1

Stack Overflow用户

发布于 2019-03-20 03:28:57

对于放置在中心位置的零部件,BorderLayout不会考虑任何这些尺寸提示。

对于不同的边框,这取决于您设置的大小。北向和南向尊重首选的高度(但忽略宽度)。WEST和EAST尊重首选的宽度和忽略高度。其他大小提示将被忽略。

编辑:查看这个网站,它有一个很好的表格,概述了不同的布局管理器对这些提示做了什么。https://thebadprogrammer.com/swing-layout-manager-sizing/

我试图在javadoc中找到一个,但无法在单个空间中找到这些信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55248499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档